ShiftScheduler

screenshot of ShiftScheduler

A boilerplate ASP.NET Core project, including a sample employee shift scheduler app

Overview

The Onyx Shift Scheduler presents a compelling solution for businesses needing to manage employee shifts efficiently. Built on the ASP.NET Core framework with an emphasis on clean architecture, this boilerplate project leverages Google OR Tools, making it highly effective for solving complex scheduling challenges. It aims to provide a structured starting point for developers looking to implement Domain-Driven Design (DDD) and adhere to SOLID principles within their applications.

This project is designed with modularity in mind, allowing developers to customize and adapt various components according to their specific needs. With built-in features such as an easy-to-use API and basic integration testing support, the Onyx Shift Scheduler exemplifies a practical approach for developers interested in building robust and maintainable software solutions.

Features

  • Clean Architecture: Utilizes a loosely-coupled, dependency-inverted architecture enabling better organization and maintainability of code.
  • Domain-Driven Design (DDD): Offers a basic structure that can be expanded upon with DDD principles, focusing on core domain logic.
  • SOLID Principles: Implements well-structured code that adheres to SOLID design patterns, ensuring clarity and robustness.
  • N-Tier Architecture: Divides the application into separate layers (UI, Infrastructure, Core) promoting clean separation of concerns.
  • API with Swagger: Includes a user-friendly API with Swagger support, making it straightforward to integrate with frontend applications.
  • Dependency Injection: Uses StructureMap for IoC/DI, facilitating the management of dependencies within the application.
  • Testing Support: Contains prebuilt integration tests and Visual Studio Docker support to streamline the testing process.
  • Sample Scheduling: Demonstrates practical usage of Google OR Tools for effective employee shift management under multiple constraints.
docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.