A modern microservices-based ecommerce platform built with a monorepo architecture. This project includes web applications, mobile apps, and backend microservices for a complete ecommerce solution.
eKart follows a microservices architecture with the following components:
- Frontend Applications: React-based web admin and Next.js store frontend
- Mobile Applications: React Native apps for admin and store management
- Backend Services: Spring Boot microservices for authentication, user management, and product catalog
- API Gateway: Centralized entry point for all client requests
eKart/
βββ apps/ # Frontend Applications
β βββ web-admin/ # React + Vite admin dashboard
β βββ web-store/ # Next.js customer storefront
β βββ mobile-admin/ # React Native admin app
β βββ mobile-store/ # React Native customer app
βββ micros/ # Backend Microservices
β βββ api-gateway/ # API Gateway (Spring Boot)
β βββ auth-service/ # Authentication & Authorization
β βββ user-service/ # User Management
β βββ product-service/ # Product Catalog
βββ packages/ # Shared packages
βββ package.json # Root package configuration
βββ pnpm-workspace.yaml # PNPM workspace configuration
βββ tsconfig.base.json # TypeScript base configuration
- React 19 - UI library for web admin
- Next.js 15 - Full-stack framework for web store
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Vite - Fast build tool for web admin
- Spring Boot 3.5.6 - Java microservices framework
- Java 25 - Programming language
- Maven - Dependency management and build tool
- Lombok - Boilerplate code reduction
- PNPM - Fast, disk space efficient package manager
- ESLint - Code linting and formatting
- TypeScript - Static type checking
- Node.js 18+ - For frontend development
- Java 25 - For backend microservices
- PNPM - Package manager
- Maven - Java build tool
- Clone the repository:
git clone https://github.com/msboffl/eKart.git
cd eKart- Install dependencies:
pnpm install- Build the auth service:
pnpm auth:buildpnpm generate:tree # Generate project structure tree
pnpm auth:dev # Start auth service in development mode
pnpm auth:build # Build auth service JAR file
pnpm auth:start # Start auth service from JARcd apps/web-admin
pnpm dev # Start development server
pnpm build # Build for production
pnpm preview # Preview production build
pnpm lint # Run ESLintcd apps/web-store
pnpm dev # Start development server with Turbopack
pnpm build # Build for production with Turbopack
pnpm start # Start production server
pnpm lint # Run ESLintcd micros/auth-service
./mvnw spring-boot:run # Start in development mode
./mvnw clean package # Build JAR file
java -jar target/auth-service-0.0.1-SNAPSHOT.jar # Run JAR-
Start Backend Services:
pnpm auth:dev
-
Start Frontend Applications (in separate terminals):
# Web Admin cd apps/web-admin && pnpm dev # Web Store cd apps/web-store && pnpm dev
-
Access Applications:
- Web Admin:
http://localhost:5173 - Web Store:
http://localhost:3000 - Auth Service:
http://localhost:8080
- Web Admin:
- Port: 8080
- Framework: Spring Boot 3.5.6
- Purpose: Handles user authentication and authorization
- Endpoints:
/auth/*,/health
- Port: 5173 (dev)
- Framework: React 19 + Vite
- Purpose: Administrative dashboard for managing the ecommerce platform
- Port: 3000 (dev)
- Framework: Next.js 15
- Purpose: Customer-facing ecommerce storefront
This project uses PNPM workspaces for efficient package management:
- Root workspace: Contains shared dependencies and scripts
- App workspaces: Individual frontend applications
- Microservice workspaces: Backend services (Java/Maven)
# Web Admin
cd apps/web-admin
pnpm test
# Web Store
cd apps/web-store
pnpm test# Auth Service
cd micros/auth-service
./mvnw test# Build all frontend applications
cd apps/web-admin && pnpm build
cd apps/web-store && pnpm build
# Build backend services
pnpm auth:buildComing soon - Docker configurations for containerized deployment
| Component | Status | Framework | Port |
|---|---|---|---|
| Web Admin | β Active | React 19 + Vite | 5173 |
| Web Store | β Active | Next.js 15 | 3000 |
| Auth Service | β Active | Spring Boot 3.5.6 | 8080 |
| User Service | π§ Planned | Spring Boot | TBD |
| Product Service | π§ Planned | Spring Boot | TBD |
| API Gateway | π§ Planned | Spring Boot | TBD |
| Mobile Apps | π§ Planned | React Native | TBD |
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and ensure all tests pass
- Commit your changes:
git commit -m 'Add: your feature description' - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request with a clear description of your changes
- Follow the existing code style and conventions
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all CI checks pass
This project is licensed under the MIT License - see the LICENSE file for details.
Mareedu Saibabu
- GitHub: @msboffl
- LinkedIn: Mareedu Saibabu
- Spring Boot for the robust backend framework
- React and Next.js for the frontend frameworks
- PNPM for efficient package management
- Vite for fast development builds
Happy Coding! π