SmartCart is a scalable, cloud-native e-commerce backend system designed using modern microservices architecture. It leverages key technologies like Spring Boot, Kafka, Docker, Kubernetes, Resilience4J, and observability tools (Prometheus, Grafana, OpenTelemetry) to ensure high resilience, fault tolerance, and efficient communication between services. The project focuses on backend engineering, integrating MongoDB and MySQL for data storage, and emphasizes self-study to explore technologies beyond typical industry projects
- Product Service
- Order Service
- Inventory Service
- Notification Service
- API Gateway using Spring Cloud Gateway MVC
- Shop Frontend using Angular 18
The technologies used in this project are:
- Spring Boot
- Angular
- MongoDB
- MySQL
- Kafka
- Keycloak
- Test Containers with Wiremock
- Grafana Stack (Prometheus, Grafana, Loki and Tempo)
- API Gateway using Spring Cloud Gateway MVC
Make sure you have the following installed on your machine:
- Node.js
- NPM
- Angular CLI
Run the following commands to start the frontend application
cd frontend
npm install
npm run start
Run the following command to build and package the backend services into a each docker container
docker compose up -d