A comprehensive microservices-based Enterprise Resource Planning (ERP) system built with modern technologies and polyglot architecture.
This ERP system follows a microservices architecture with Domain-Driven Design (DDD) principles, implementing a polyglot approach using multiple programming languages and frameworks.
| Service | Technology | Framework | Database |
|---|---|---|---|
| HR Service | .NET 8 | ASP.NET Core Web API | SQL Server |
| Inventory Service | .NET 8 | ASP.NET Core Web API | SQL Server |
| Accounting Service | .NET 8 | ASP.NET Core Web API | SQL Server |
| Workflow Service | Java 21 | Spring Boot 3.2 | PostgreSQL |
| Notification Service | Node.js 18 | Express.js + Socket.IO | MongoDB |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Gateway (Azure APIM) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Service Mesh (Istio) + Load Balancer + Authentication β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β HR Service β Inventory β Accounting β Workflow β Notify β
β (.NET) β Service β Service β Service β Service β
β β (.NET) β (.NET) β (Java) β (Node) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Message Bus (Azure Service Bus + Events) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SQL Server β SQL Server β SQL Server βPostgreSQLβ MongoDB β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ocelon/
βββ erp-system/
β βββ src/
β β βββ HRService/ β
Complete Implementation
β β β βββ HRService.Domain/
β β β βββ HRService.Application/
β β β βββ HRService.Infrastructure/
β β β βββ HRService.API/
β β βββ InventoryService/ π Ready for Implementation
β β βββ AccountingService/ π Ready for Implementation
β β βββ WorkflowService/ βοΈ Java Spring Boot
β β βββ NotificationService/ βοΈ Node.js Express
β βββ gateway/ # API Gateway (Azure APIM, YARP, Ocelot, shared libs)
β β βββ api-management/ # Azure API Management policies, OpenAPI, docs
β β βββ self-hosted-gateway/ # YARP & Ocelot implementations
β β βββ infrastructure/ # Gateway-specific IaC (Bicep, etc.)
β β βββ src/ # Shared libraries, gateway tests
β β βββ build/ # Gateway build scripts
β βββ tests/
β β βββ unit/ β
xUnit + Jest
β β βββ integration/ π Ready
β β βββ e2e/ # End-to-end tests
β βββ infrastructure/
β β βββ bicep/ βοΈ Bicep Templates
β β βββ kubernetes/ π³ K8s Manifests
β β βββ terraform/ ποΈ IaC Scripts
β βββ config/ # Environment-specific configs
β β βββ dev/
β β βββ staging/
β β βββ prod/
β βββ ci-cd/
β β βββ github-actions/ π DevOps Pipelines
β βββ database/ # Database management/scripts
β βββ docs/ π Documentation
βββ ERP.sln β
Solution File
βββ README.md π This File
- .NET 8 SDK - Download
- Java 21 - Download
- Node.js 18+ - Download
- Docker Desktop - Download
- Azure CLI - Download
cd erp-system/src/HRService/HRService.API
dotnet restore
dotnet build
dotnet runEndpoints: https://localhost:7001/api/employees
cd erp-system/src/NotificationService
npm install
npm startEndpoints: http://localhost:3000/api/notifications
cd erp-system/src/WorkflowService
mvn clean install
mvn spring-boot:runEndpoints: http://localhost:8080/api/workflows
# Build HR Service
docker build -t ocelon/hr-service ./src/HRService
# Build Notification Service
docker build -t ocelon/notification-service ./src/NotificationService
# Build Workflow Service
docker build -t ocelon/workflow-service ./src/WorkflowServicecd erp-system
docker-compose up -dcd erp-system
dotnet build ERP.sln# .NET Unit Tests
dotnet test tests/unit/HRService/
# Node.js Tests
cd src/NotificationService && npm test
# Java Tests
cd src/WorkflowService && mvn test- β HR Service: Complete DDD implementation with CQRS
- β Solution Build: All projects compile successfully
- β Unit Tests: xUnit framework configured
- β Integration: Service Bus messaging ready
- Employee Management: CRUD operations with DDD patterns
- Payroll Processing: Automated salary calculations
- Leave Management: Request and approval workflows
- Performance Tracking: KPI monitoring and reviews
- Stock Management: Real-time inventory tracking
- Warehouse Operations: Multi-location support
- Supply Chain: Vendor and procurement management
- Reporting: Analytics and forecasting
- Financial Records: General ledger management
- Invoicing: Automated billing and payments
- Tax Management: Compliance and reporting
- Financial Analytics: Real-time dashboards
- Business Process Management: Flowable BPM integration
- Approval Workflows: Multi-step approval chains
- Task Automation: Scheduled and event-driven tasks
- Process Analytics: Performance monitoring
- Real-time Messaging: WebSocket support with Socket.IO
- Email Notifications: SMTP integration
- SMS Alerts: Third-party SMS providers
- Push Notifications: Mobile and web notifications
- AKS (Azure Kubernetes Service): Container orchestration
- Azure Service Bus: Message queuing and pub/sub
- Azure SQL Database: Relational data storage
- Azure API Management: API gateway and management
- Azure Key Vault: Secrets and configuration management
- Application Insights: Monitoring and telemetry
# Infrastructure Deployment
cd infrastructure/azure
az deployment group create --template-file main.bicep
# Kubernetes Deployment
cd infrastructure/kubernetes
kubectl apply -f ./manifests/
# CI/CD Pipeline
# GitHub Actions automatically deploy on main branch pushEach .NET service follows clean architecture:
- Domain Layer: Entities, Value Objects, Domain Services
- Application Layer: Use Cases, Commands, Queries (CQRS)
- Infrastructure Layer: Data Access, External Services
- API Layer: Controllers, DTOs, Validation
- Commands: Write operations with business validation
- Queries: Optimized read operations
- Events: Domain events for inter-service communication
- Handlers: MediatR pattern for decoupling
- API Gateway: Single entry point with routing
- Service Discovery: Automatic service registration
- Circuit Breaker: Fault tolerance and resilience
- Event-Driven: Asynchronous communication via messages
- Health Checks: Built-in endpoint monitoring
- Logging: Structured logging with Serilog
- Metrics: Prometheus integration
- Tracing: Distributed tracing with OpenTelemetry
- Dashboards: Grafana visualization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Documentation: Wiki
- Issues: GitHub Issues
- Discussions: GitHub Discussions
| Component | Status |
|---|---|
| HR Service | π§ In Development |
| Inventory Service | π Planned |
| Accounting Service | π Planned |
| Workflow Service | π§ In Development |
| Notification Service | π§ In Development |
| Infrastructure | π§ In Development |
| CI/CD Pipeline | π§ In Development |
| Documentation | π§ In Development |
Built with β€οΈ using modern microservices architecture and best practices.