FactoryX is a modular backend platform for factory management, built with .NET 9. It provides a foundation for digitalizing manufacturing operations, including machine tracking, production planning, operator management, inventory, and downtime analytics. The project is structured for maintainability and extensibility, making it suitable for both learning and real-world prototyping.
- Layered Structure: Clear separation between domain, application, infrastructure, and web layers for easier maintenance.
- Extensible: Easily add new entities, services, or integrations as your factory grows.
- Practical Patterns: Uses DTOs, repository pattern, dependency injection, and mapping for a clean and testable codebase.
- Machine management (CRUD, status, capacity)
- Operator management and shift assignments
- Product and material inventory tracking
- Work order and production scheduling
- Production record logging
- Downtime tracking and reporting
- User authentication and role management
- Consistent response and request handling patterns
- Domain: Entity definitions
- Application: DTOs, validators, service abstractions, and mapping profiles
- Infrastructure: EF Core DbContext, repository implementations, dependency injection helpers
- Web: ASP.NET MVC Web API for UI
- .NET 9 (C#)
- ASP.NET Core Web API
- Entity Framework Core (with Npgsql for PostgreSQL)
- AutoMapper (object mapping)
- FluentValidation (input validation)
- PostgreSQL (primary database)
- .NET 9 SDK
- PostgreSQL
- Visual Studio 2022, VS Code, or any C# editor
- Clone the repository:
git clone https://github.com/berkanserbes/FactoryX.git cd FactoryX
- Configure the database:
- Edit
FactoryX.Web/appsettings.json
and set your PostgreSQL connection string.
- Edit
- Apply migrations:
dotnet ef database update --project FactoryX.Infrastructure --startup-project FactoryX.Web
- Build and run:
dotnet build dotnet run --project FactoryX.Web
Contributions are welcome! To get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -m 'Add new feature'
) - Push to your branch (
git push origin feature/your-feature
) - Open a Pull Request
Please follow the existing code style and add tests for new features. For major changes, open an issue first to discuss your proposal.
FactoryX is released under the MIT License. See the LICENSE file for details.
Built for practical factory management and learning ASP.NET MVC development.