This is the example CRUD app module that Magic is distributed with out of the box, and serves as an example module, for you to look at to create your own modules. The idea is that each module contains of 5 projects, optionally one additional unit test project, and these are as follows.
contracts- Contains service interface(s) for your module
model- Contains the database model(s) and mapping logic for your module
services- Contains the servic(es) your module is dependent upon
web.controller- Contains your controller(s)
web.model- Contains the view-model(s)/web-model(s) for your module
The services is the most important part of your solution, and should ideally contain all your business logic.
Everything you do through your services, should be done through a contract/interface, using dependency injection,
IServiceCollection in some class implementing the
IInitialize interface. See the
project for an example, inside of the "init" folder, in its "ConfigureServices.cs" file.