saeidamini/SupplyBoost
SupplyBoost is a supply chain management web application.
SupplyBoost
SupplyBoost is an educational platform demonstrating enterprise-grade supply chain management through a distributed microservices architecture. This project serves as a comprehensive learning resource for modern software engineering practices, cloud-native patterns, and real-world system design challenges.
Project Status: π§ Planning Phase - Repository restructuring and architecture design in progress.
Table of Contents
- Overview
- Architecture
- Features
- Technology Stack
- Getting Started
- Project Structure
- Development Roadmap
- Contributing
- Documentation
- License
Overview
Purpose
SupplyBoost bridges the gap between theoretical knowledge and practical implementation of distributed systems. While countless resources teach microservices, event-driven architecture, and cloud technologies in isolation, few demonstrate how these patterns work together in a cohesive, production-like system.
This project aims to:
- Provide a realistic, non-trivial example of microservices architecture
- Demonstrate modern software engineering practices and patterns
- Serve as a learning platform for developers transitioning to distributed systems
- Showcase the full lifecycle: design β development β deployment β operations
Target Audience
- Mid-level developers seeking hands-on experience with microservices
- DevOps engineers exploring containerization and orchestration
- Architecture enthusiasts studying system design patterns
- Students and educators looking for real-world examples beyond "todo apps"
What Makes This Different?
Unlike toy applications, SupplyBoost tackles real complexity:
- Multiple business domains: Identity, catalog, orders, inventory, payments, shipping, accounting
- Distributed transactions: Saga pattern for cross-service workflows
- Event-driven architecture: Asynchronous communication via Kafka
- Production-ready practices: Monitoring, logging, tracing, security, testing
Architecture
SupplyBoost follows a microservices architecture with event-driven patterns.
βββββββββββββββ ββββββββββββββββ ββββββββββββββ
β Web UI ββββββββββΆβ API Gateway ββββββββββΆβ Services β
β (Vue.js) β β (Spring) β β (9 Β΅svcs) β
βββββββββββββββ ββββββββββββββββ ββββββββββββββ
β β
β βΌ
β βββββββββββββββββββ
β β Apache Kafka β
β β (Event Streams) β
β βββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββ βββββββββββββββββ
β Keycloak β β PostgreSQL β
β (Auth) β β Elasticsearchβ
ββββββββββββββββ βββββββββββββββββ
Microservices
| Service | Responsibility | Technology |
|---|---|---|
| Identity Service | User authentication, authorization, profiles | Spring Boot + Keycloak |
| Product Catalog | Product management, categories, search | Spring Boot + Elasticsearch |
| Shopping Cart | Cart management, pricing calculations | Spring Boot + Redis |
| Order Management | Order lifecycle, saga orchestration | Spring Boot + PostgreSQL |
| Inventory | Stock tracking, reservations, alerts | Spring Boot + PostgreSQL |
| Payment | Payment processing, Stripe integration | Spring Boot + PostgreSQL |
| Shipping | Shipment creation, tracking | Spring Boot + PostgreSQL |
| Notification | Email/SMS notifications | Spring Boot + SendGrid |
| Accounting | Invoicing, revenue recognition | Spring Boot + PostgreSQL |
For detailed architecture, see: docs/ARCHITECTURE.md
Features
Current Phase: MVP (Minimum Viable Product)
User Journey:
- β User registration and authentication
- β Browse product catalog with search and filtering
- β Add products to shopping cart
- β Checkout and payment processing
- β Order tracking and status updates
- β Email notifications at key events
- β Invoice generation and delivery
Planned Features
- Advanced inventory management with low-stock alerts
- Order modification and cancellation workflows
- Customer reviews and ratings
- Promotional codes and discounts
- Admin portal for catalog and order management
- Analytics dashboards
See: docs/ROADMAP.md for complete feature timeline
Technology Stack
Backend
- Framework: Spring Boot 3.2, Spring Cloud
- Language: Java 17+
- Build Tool: Maven 3.8+
- API Gateway: Spring Cloud Gateway
- Service Discovery: Kubernetes DNS / Eureka
Data Layer
- Database: PostgreSQL (per-service databases)
- Cache: Redis
- Search: Elasticsearch
- Message Broker: Apache Kafka
Frontend
- Framework: Vue.js 3 + TypeScript
- Build Tool: Vite
- State Management: Pinia
Infrastructure
- Containerization: Docker
- Orchestration: Kubernetes
- Local Dev: Docker Compose
- CI/CD: GitHub Actions
Observability
- Logging: ELK Stack (Elasticsearch, Logstash, Kibana)
- Metrics: Prometheus + Grafana
- Tracing: Jaeger
- APM: Spring Boot Actuator + Micrometer
Security
- Identity Provider: Keycloak (OAuth2/OIDC)
- Authentication: JWT tokens
- Authorization: Role-based access control (RBAC)
Getting Started
Prerequisites
Ensure you have the following installed:
- Java 17+ (OpenJDK or Azul Zulu)
- Maven 3.8+ (Download)
- Docker 20+ and Docker Compose (Get Docker)
- Node.js 18+ (for frontend) (Download)
- Git (Download)
Quick Start
Note: The project is currently in the planning/restructuring phase. The following instructions will be functional after Week 1 of the roadmap.
# 1. Clone the repository
git clone https://github.com/deepkulk/SupplyBoost.git
cd SupplyBoost
# 2. Start infrastructure services (PostgreSQL, Kafka, Redis, etc.)
cd infrastructure/docker-compose
docker-compose up -d
# 3. Build all microservices
cd ../..
mvn clean install
# 4. Run services (once implemented)
# Individual services will have their own run instructions
# 5. Access the application
# Web UI: http://localhost:8080
# API Gateway: http://localhost:8080/api
# Grafana: http://localhost:3000
# Kibana: http://localhost:5601First-time setup: See CONTRIBUTING.md for detailed development environment setup.
Project Structure
SupplyBoost/
βββ services/ # Microservices
β βββ identity-service/ # User authentication & authorization
β βββ product-catalog-service/ # Product management & search
β βββ shopping-cart-service/ # Shopping cart management
β βββ order-management-service/ # Order lifecycle & saga orchestration
β βββ inventory-service/ # Stock tracking & reservations
β βββ payment-service/ # Payment processing
β βββ shipping-service/ # Shipment management
β βββ notification-service/ # Email/SMS notifications
β βββ accounting-service/ # Invoicing & financial records
β
βββ frontend/ # Frontend applications
β βββ web-app/ # Vue.js SPA
β
βββ infrastructure/ # Infrastructure as Code
β βββ docker-compose/ # Local development environment
β βββ kubernetes/ # K8s manifests (Helm charts)
β
βββ docs/ # Documentation
β βββ PRD.md # Product Requirements Document
β βββ ARCHITECTURE.md # Technical architecture
β βββ ROADMAP.md # Development roadmap
β βββ adr/ # Architecture Decision Records
β βββ assets/ # Images, diagrams
β βββ archive/ # Historical documents
β
βββ scripts/ # Utility scripts
β βββ setup-dev-env.sh # Development environment setup
β βββ run-all-tests.sh # Run all tests
β βββ deploy.sh # Deployment automation
β
βββ pom.xml # Maven parent POM
βββ README.md # This file
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # Apache 2.0 license
Development Roadmap
The project follows a 12-week development plan divided into three phases:
Phase 1: Foundation (Weeks 1-4)
- β Repository restructuring
- β Comprehensive planning documents
- β³ CI/CD pipeline setup
- β³ Core services scaffolding (Identity, Product Catalog, Inventory)
Phase 2: Core Features (Weeks 5-8)
- β³ Shopping cart and order creation
- β³ Payment and shipping services
- β³ Event-driven saga implementation
- β³ Frontend development (Vue.js)
Phase 3: Production Readiness (Weeks 9-12)
- β³ Observability stack (logging, metrics, tracing)
- β³ Security hardening
- β³ Performance testing and optimization
- β³ Kubernetes deployment
- β³ Operational documentation
Detailed roadmap: docs/ROADMAP.md
Progress Tracking: See GitHub Projects for current sprint status.
Contributing
We welcome contributions! Whether you're fixing bugs, improving documentation, or proposing new features, your help is appreciated.
How to Contribute
- Read CONTRIBUTING.md for detailed guidelines
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes with clear messages
- Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
Code of Conduct
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Development Workflow
# Run tests before committing
mvn test
# Format code (Spotless)
mvn spotless:apply
# Check code coverage
mvn verify
open target/site/jacoco/index.htmlDocumentation
Core Documents
| Document | Description |
|---|---|
| PRD.md | Product Requirements Document - what we're building |
| ARCHITECTURE.md | System architecture and design patterns |
| ROADMAP.md | 12-week development plan |
| RESTRUCTURING_PLAN.md | Repository cleanup strategy |
Architecture Decision Records (ADRs)
Important architectural decisions are documented in docs/adr/:
- ADR-001: Microservices Architecture
- ADR-002: Event-Driven Communication (planned)
- ADR-003: Database-per-Service (planned)
- ADR-005: Monorepo Structure
API Documentation
Once services are implemented, API documentation will be available at:
- Swagger UI:
http://localhost:8080/swagger-ui - OpenAPI Spec:
http://localhost:8080/api-docs
Diagrams
User Purchase Flow
Supply Chain Process
FAQ
Q: Is this production-ready?
A: Not yet. This is an educational project. While we follow production best practices, it's designed for learning, not commercial deployment.
Q: Can I use this for my startup/company?
A: Yes, under the Apache 2.0 license. However, you'll need significant additional work for true production readiness (security audit, scaling, compliance, etc.).
Q: Why not just use a monolith?
A: Monoliths are often the right choice! This project explicitly chooses microservices for educational value. See ADR-001 for the full reasoning.
Q: How can I contribute?
A: Check CONTRIBUTING.md and look for issues labeled good first issue or help wanted.
Q: What's the deployment strategy?
A: Local development uses Docker Compose. Production deployment targets Kubernetes (GKE/EKS/AKS). See docs/ARCHITECTURE.md.
Community
- Issues: GitHub Issues - Bug reports and feature requests
- Discussions: GitHub Discussions - Questions and ideas
- Twitter: @saeid_amini - Project updates
Acknowledgments
- Inspired by eShopOnContainers (Microsoft)
- Architecture patterns from Building Microservices by Sam Newman
- DDD concepts from Domain-Driven Design by Eric Evans
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Copyright Β© 2025 SupplyBoost Contributors
Star History
If you find this project helpful, please consider giving it a β! It helps others discover the project.
Built with β€οΈ for the developer community
