Loading repository data…
Loading repository data…
Brijes987 / repository
IntelliCart – AI-Powered Microservices E-Commerce Platform : A production-grade scalable backend system built using Spring Boot, Kafka, and Python AI services, featuring event-driven architecture, recommendation engine, fraud detection, and intelligent search.
IntelliCart is a production-grade, microservices-based e-commerce platform built with:
┌─────────────────┐
│ API Gateway │
│ (Port 8080) │
└────────┬────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
┌──────────▼─────────┐ ┌─────────▼────────┐ ┌──────────▼─────────┐
│ User Service │ │ Product Service │ │ Order Service │
│ (Port 8081) │ │ (Port 8082) │ │ (Port 8083) │
└────────────────────┘ └──────────────────┘ └────────────────────┘
│ │ │
└────────────────────────┼────────────────────────┘
│
┌────────▼────────┐
│ Kafka Broker │
│ (Port 9092) │
└────────┬────────┘
│
┌───────────────────────────────────┼───────────────────────────────────┐
│ │ │
┌────────▼─────────┐ ┌───────────▼──────────┐ ┌────────────▼────────┐
│ Inventory Service│ │ Notification Service │ │ Payment Service │
│ (Port 8084) │ │ (Port 8086) │ │ (Port 8085) │
└──────────────────┘ └──────────────────────┘ └─────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ AI Services (Python) │
├──────────────────────┬──────────────────┬───────────────┤
│ Recommendation │ Fraud Detection │ Search Service│
│ (Port 8090) │ (Port 8091) │ (Port 8092) │
└──────────────────────┴──────────────────┴───────────────┘
┌──────────────────────────────────────────────────────────┐
│ Infrastructure Services │
├────────────────────┬─────────────────────────────────────┤
│ Service Registry │ Config Server │
│ (Eureka: 8761) │ (Port 8888) │
└────────────────────┴─────────────────────────────────────┘
✅ 11 fully functional microservices (8 Java + 3 Python) ✅ Complete event-driven architecture ✅ AI-powered recommendations and fraud detection ✅ Advanced search with Elasticsearch ✅ API Gateway with JWT authentication ✅ Comprehensive unit tests ✅ CI/CD pipeline with GitHub Actions ✅ Kubernetes deployment manifests ✅ Helm charts for easy deployment ✅ Complete documentation (12 files)
See COMPLETION_SUMMARY.md for full details
# Build all Java services
mvn clean install -DskipTests
docker-compose up -d postgres redis kafka elasticsearch
# 1. Config Server
cd config-server && mvn spring-boot:run
# 2. Service Registry
cd service-registry && mvn spring-boot:run
# 3. Core Services
cd user-service && mvn spring-boot:run
cd product-service && mvn spring-boot:run
cd order-service && mvn spring-boot:run
cd inventory-service && mvn spring-boot:run
cd payment-service && mvn spring-boot:run
cd notification-service && mvn spring-boot:run
# 4. API Gateway
cd api-gateway && mvn spring-boot:run
# 5. AI Services
cd recommendation-service && uvicorn main:app --port 8090
cd fraud-detection-service && uvicorn main:app --port 8091
cd search-service && uvicorn main:app --port 8092
docker-compose up --build
Once services are running, access Swagger UI:
| Service | Port |
|---|---|
| API Gateway | 8080 |
| User Service | 8081 |
| Product Service | 8082 |
| Order Service | 8083 |
| Inventory Service | 8084 |
| Payment Service | 8085 |
| Notification Service | 8086 |
| Recommendation Service | 8090 |
| Fraud Detection Service | 8091 |
| Search Service | 8092 |
| Config Server | 8888 |
| Eureka Server | 8761 |
order.created - New order eventsorder.confirmed - Order confirmation eventsorder.cancelled - Order cancellation eventspayment.processed - Payment completion eventsinventory.updated - Stock update eventsuser.activity - User behavior trackingfraud.detected - Fraud alertsuserdbproductdborderdbinventorydbpaymentdbAll APIs require JWT authentication (except registration/login).
POST /api/auth/login
{
"email": "user@example.com",
"password": "password123"
}
Authorization: Bearer <your-jwt-token>
Import the Postman collection from postman/IntelliCart.postman_collection.json
# Register User
curl -X POST http://localhost:8080/api/users/register \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"pass123","firstName":"John","lastName":"Doe"}'
# Login
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"pass123"}'
# Get Products
curl -X GET http://localhost:8080/api/products \
-H "Authorization: Bearer <token>"
# Create Order
curl -X POST http://localhost:8080/api/orders \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"items":[{"productId":1,"quantity":2}]}'
order.created/actuator/health, /actuator/metricsservice-name/
├── src/main/java/com/intellicart/servicename/
│ ├── controller/
│ ├── service/
│ ├── repository/
│ ├── model/
│ ├── dto/
│ ├── config/
│ ├── exception/
│ └── ServiceNameApplication.java
├── src/main/resources/
│ ├── application.yml
│ └── bootstrap.yml
└── pom.xml
All service configurations are centralized in Config Server.
Configuration files are in config-server/src/main/resources/config/
bootstrap.yml has correct config server URLdocker ps | grep kafkaMIT License
✅ User registration and JWT authentication ✅ Product catalog with categories ✅ Advanced product search and filtering ✅ Redis caching for performance ✅ Order creation and management ✅ Automatic inventory management via events ✅ Event-driven architecture with Kafka ✅ Service discovery with Eureka ✅ Centralized configuration ✅ Circuit breake