Getting Started π
This guide helps you set up ShopVerse β Intelligent Event-Driven E-Commerce Platform locally and understand how to run the system step by step.
ShopVerse is a production-grade, microservices-based, event-driven e-commerce platform, and the setup closely mirrors real-world backend system practices.
π Prerequisitesβ
Before starting, ensure the following tools are installed on your system.
πΉ Requiredβ
- Java 21
- Node.js 20+
- Docker & Docker Compose
- Git
πΉ Optional (Recommended for Development)β
- IntelliJ IDEA / VS Code
- Postman / Thunder Client
π¦ Project Repositoriesβ
ShopVerse follows industry-standard repository separation.
-
π§ Backend β Microservices & event-driven architecture
https://github.com/ikirtesh/shopverse-backend -
π¨ Frontend β UI application
https://github.com/ikirtesh/shopverse-frontend -
π Documentation β Architecture, APIs & system design
https://shopverse-docs.vercel.app
π§± High-Level Setup Flowβ
Follow this order for local setup:
- Start shared infrastructure (databases, Kafka)
- Start backend microservices
- Access APIs through the API Gateway
- (Optional) Start the frontend application
π³ Infrastructure Setup (Docker)β
ShopVerse uses Docker to run shared infrastructure locally.
Start infrastructure servicesβ
docker-compose up -d
This starts:
- PostgreSQL
- MongoDB
- Apache Kafka
- Zookeeper
- Other supporting services (as configured)
Verify running containersβ
docker ps
βΆοΈ Running Backend Microservicesβ
Each backend component is an independent Spring Boot microservice.
π’ Recommended Startup Orderβ
- Service Registry (Eureka)
- API Gateway
- Auth Service
- User Service
- Product Service
- Order Service
- Payment Service
- Notification / Analytics / Recommendation Services
Start a serviceβ
./mvnw spring-boot:run
or run directly from your IDE.
π‘ Once infrastructure is running, services can be started independently.
π Accessing the Systemβ
After services start successfully:
API Gatewayβ
http://localhost:8080
All external requests must go through the API Gateway.
π Authentication (Quick Test)β
Register a Userβ
POST /api/auth/register
Loginβ
POST /api/auth/login
Sample Responseβ
{
"token": "JWT_TOKEN"
}
Use the token in subsequent requests:
Authorization: Bearer <JWT_TOKEN>
π‘ Event-Driven Componentsβ
Some services work asynchronously using Kafka:
- Notification Service
- Analytics Service
- Recommendation Service
These services:
- Consume Kafka events
- Do not require direct API calls
- Process data asynchronously
This design ensures loose coupling, scalability, and fault tolerance.
β οΈ Common Issues & Fixesβ
β Kafka not startingβ
β Ensure Docker has sufficient memory β Check logs:
docker-compose logs kafka
β 401 Unauthorizedβ
β Ensure requests go through the API Gateway β Verify JWT token validity
β Service not discoveredβ
β Check Eureka dashboard
β Verify spring.application.name configuration
π§ͺ Health Checksβ
Each service exposes a health endpoint:
GET /actuator/health
Use this to verify service availability during development.
π§ Recommended Learning Pathβ
If you are new to ShopVerse, follow this order:
- Architecture Overview
- Authentication & Security Flow
- Service-by-Service Documentation
- Kafka Event Flow
- Deployment Strategy
π Notesβ
- ShopVerse is modular by design
- Services scale independently
- Infrastructure is shared using Docker
- APIs are documented separately
β Next Stepsβ
Once setup is complete:
- Explore the Architecture section
- Review Auth & Security design
- Dive into Individual Microservices
π Youβre now ready to explore ShopVerse in depth.