Packet Structure - HeilOliver/Timeify GitHub Wiki

The application consists out of 5 projects. Each project has a specific role.

  • Timeify.Api This project contains the complete API controllers and their presenters. It receives API calls and forwards them to the usecases. Furthermore this is the starting point of the application. In this project also settings for the database and JWT Secret are set.

  • Timeify.Common The Common Project contains all program parts needed for the complete application. There is no domain logic in this project. In our case here are the DI attributes and logger abstractions.

  • Timeify.Api.Shared In this project the request and return objects of the API are stored. This project is a Net Standard project which can be implemented in other applications to use the class definitions for the respective API request and returns.

  • Timeify.Core In the core project all domain specific usecases and their dependencies are defined. UseCases as an example are available in this project as interface and implementation. Repositories and services on the other hand are only available as interfaces. In the core project no dependencies to external libraries are defined.

  • Timeify.Infrastructure The implementations of repositories and services are in this project. Furthermore, in the Infrastructure project the migrations from the database are stored as well as their associated context.