Language | File |
---|---|
🇺🇸 EN | README.md |
🇧🇷 BR | README_BR.md |
This application is intended to be used by NGOs (non governamental organizations), preferably by social NGOs.
To contribute, take a look at our "Contribution Guide" (TBD)
This application will use C# with .NET Core 7
The architecture to be used is the Clean Architecture.
If you don't mind what we're talking about, think this model:
Folder structure
📁 Data // Data layer (Take care of Disk and Cloud)
📁 Features // Data features
📁 Categories // Everything related to Category inside Data
📁 Repositories // Category Repositories
📁 Cloud // Everything related to cloud (Eg: APIs)
📁 Mappers // Mappers to cloud classes
📄 CategoryRestMapper // Mapper for cloud CategoryRest
📄 UserRestMapper // Mapper for cloud UserRest
📁 Entities // Entities used in cloud
// (Here we can use folders to Request and Response as needed)
📄 CategoryRest // Category entity to be used in cloud requests to another APIs
📄 UserRest // User entity to be used in cloud requests to another APIs
📄 CategoryCloudRepository // Cloud repository implementation
📄 ICategoryCloudRepository // Cloud repository interface
📁 Disk // Everything related to Disk (Databases, files)
📁 Mappers // Mappers for disk classes
📄 CategoryMySqlMapper // Mapper for disk CategoryMySql
📄 UserSqlMapper // Mapper for disk UserMySql
📁 Entities // Entities used in disk
📄 CategoryMySql // Disk Category entity (like Database, for example)
📄 UserMySql // Disk User entity (like Database, for example)
📄 CategoryDiskRepository // Disk repository implementation (here we can have one for MySql,
// another for Postgres... but every has to implement ICategoryDiskRepository)
📄 ICategoryDiskRepository // Disk repository interface
📄 CategoryService // Implementation for Category Service
📁 Users // Everything related to Users in Date (same example as above)
📁 Domain // Domain Layer (Logic and Business Rules)
📁 Features // Application Features
📁 Categories // Categories Use Cases
📄 GetCategoriesUseCase // Use Case to get all Categories
📄 GetCategoryByIdUseCase // Use Case to get a Category by id
📄 InsertCategoryUseCase // Use Case to insert a Category
📁 Users // User Use Cases
📄 CreateUserUseCase // Create a new User
📄 UserLoginUseCase // Try to login the User
📁 Entities // Business Models (Entities)
📄 Category // Category
📄 User // User
📁 Repository // Business Interfaces
📄 ICategoryRepository // Interface for defining Category methods
📄 IUserRepository // Interface for defining User methods
📁 Presentation // Presentation Layer
📁 Exceptions // API return exceptions
📄 CategoryIdNotFound // Exception thrown when category not found
📄 UserLoginException // Exception thrown when user login/password is invalid
📁 Features // Application controllers
📄 CategoryController // Category Controller
📄 UserController // User Controller
📁 Entities // Templates (Entities) exclusive to the Presentation
📁 Mappers // Presentation entity mappers
📄 CategoryRequestMapper // CategoryRequest Mapper
📄 CategoryResponseMapper // CategoryResponse Mapper
📄 UserCreateRequestMapper // UserCreateRequest Mapper
📄 UserLoginRequestMapper // UserLoginRequest Mapper
📄 UserResponseMapper // UserResponse Mapper
📁 Requests // In API's we use to define input entities
📄 CategoryRequest // Request entity for Categories
📄 UserCreateRequest // Request entity for creating Users
📄 UserLoginRequest // User login request entity
📁 Responses // In API's we use it to define the output entities
📄 CategoryResponse // Request entity for Category response
📄 UserResponse // Request entity for User Response
![]() @marcosrocha85 |
![]() @eimigueloliveir |
---|