Synkro is a comprehensive microservice-based inventory management and prediction system designed with a modern cloud-native architecture. It combines powerful inventory tracking capabilities with AI-driven demand forecasting to optimize stock levels and streamline operations.
- Inventory Management - Track inventory levels across multiple warehouses
- Order Processing - Manage orders and track fulfillment status
- AI-Powered Forecasting - Predict demand and optimize stock levels
- Real-time Notifications - Get alerts for low stock and other events
- Role-Based Access Control - Manage user permissions securely
- Comprehensive Analytics - Make data-driven decisions
| Component | Status | Description |
|---|---|---|
| Frontend Dashboard | ✅ Complete | Next.js application with Atomic Design and Neobrutalism |
| Frontend Auth | ✅ Complete | Vite-based authentication frontend |
| Frontend Landing | ✅ Complete | Astro-based marketing site |
| API Gateway & Auth | ✅ Complete | NestJS application handling authentication and API routing |
| AI/ML Service | ✅ Complete | Python/FastAPI service for demand forecasting |
| Notification Service | ✅ Complete | Multi-channel event-driven notification system with RabbitMQ |
| Observability Stack | ✅ Complete | ELK Stack for logging and monitoring |
| Data Layer | ✅ Complete | PostgreSQL, Redis, and Elasticsearch |
Synkro follows a microservice architecture with several interconnected components:
Frontend Layer → API Gateway → Backend Services → Data Layer
↓
Observability Stack
The system is designed for scalability, resilience, and maintainability.
For detailed architecture information, see ARCHITECTURE.md.
Synkro is deployed using Kubernetes for container orchestration, providing:
- Scalability through replica management
- High availability with multi-pod deployments
- Resource allocation and limits
- Health monitoring and self-healing
- Service discovery and load balancing
For detailed deployment instructions, see K8S.md.
- Docker and Docker Compose for local development
- Kubernetes cluster for production deployment
- Node.js 18+ for frontend development
- Python 3.9+ for ML service development
# Deploy to development environment
kubectl apply -k k8s/overlays/development/
# Verify the deployment
kubectl get all -n development-
Dashboard (Next.js)
- Main user interface built with React and Next.js
- Implements Atomic Design principles
- Uses TailwindCSS with Neobrutalism design
- Protected routes with authentication
-
Auth Frontend (Vite)
- Handles user login and registration
- Secure token storage and management
- Responsive design with Tailwind CSS
-
Landing Page (Astro)
- Marketing and product information
- Fast, static site generation
- Optimized for performance and SEO
-
API Gateway & Auth (NestJS)
- Authentication and authorization with OAuth2/JWT
- RBAC (Role-Based Access Control)
- API security and rate limiting
- Service discovery and load balancing
-
AI/ML Service (Python/FastAPI)
- Demand forecasting models
- Time series analysis
- Stock level optimization
- Model training and validation
-
Notification Service (Bun/TypeScript)
- Event-driven architecture with RabbitMQ
- Multi-channel notifications (Email, Push, WebSocket, In-App)
- Template management with Handlebars
- Real-time WebSocket notifications
- Device token management for push notifications
- Graceful degradation when external providers unavailable
- PostgreSQL - Primary database for orders and inventory
- Redis - Caching layer and session management
- Elasticsearch - Analytics and search capabilities
- ELK Stack - Centralized logging and monitoring
- Prometheus & Grafana - Metrics collection and visualization
Synkro uses a well-structured database schema with relationships between:
- Users and authentication
- Inventory management
- Order processing
- ML predictions
- Customer information
For a detailed entity relationship diagram, see the ARCHITECTURE.md document.
We welcome contributions to Synkro! Please see our contributing guidelines for more information.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Architecture Documentation - Detailed system architecture
- Kubernetes Guide - Kubernetes deployment instructions