API for the management of check-in in gyms, made in .NET 8 is a recreation of an old API made in Node.js. It is possible to manage gyms, checks and user information, addressing concepts such as CQRS, RBAC, DDD and Solid Princes.
User
| Method | Path | Action |
|---|---|---|
| Post | /API/V1/Register | Performs the registration of a new user |
| Post | /API/V1/Session | Performs the user authentication |
| Get | /API/V1/user/profile | Rescue user information |
Gyms
| Method | Path | Action |
|---|---|---|
| Post | /API/V1/Gyms | Register a new gym (only admin) |
| Get | /API/V1/Nearby | Search the proxmia academies based on the user's location |
| Get | /API/V1/Search | Search for Academies |
Check-Ins
| Method | Path | Action |
|---|---|---|
| Post | /API/V1/check-ins | Performs the registration of a new check-in |
| Get | /API/V1/check-ins/user/: Userid/history | Rescues the user's check-ins history |
| Get | /API/V1/check-ins/user/: Userid/metrics | Rescues the user's check-ins metrics |
| Patch | /API/V1/check-ins/: checkinid/validate | Validates a check-in when you arrive at the gym |
/src
/Domain
- Biblioteca de Classes
- Entidades, Agregados, Repositórios (Interfaces), Serviços de Domínio
/Application
- Biblioteca de Classes
- Comandos, Consultas, Manipuladores
/Infrastructure
- Biblioteca de Classes
- Persistência, Repositórios (Implementações), Serviços Externos
/Shared
- Biblioteca de Classes
- DTOs, Eventos, Exceções Comuns
/API
- WebAPI
- Controladores, Configuração de Roteamento
Project Type: Class Library
Responsibility: Contains the fundamental business rules and the central logic of the system, including entities, value objects, aggregates and domain services.
Project Type: Class Library
Responsibility: contains reusable components throughout the application, such as DTTs, domain events, common exceptions, etc.
<<<<<< head
Origin/Main - Project Type: Class Library
- ***Responsabilidade:*** Implementa componentes de infraestrutura, como persistência de dados (contextos de banco de dados, repositórios concretos), serviços externos e outras dependências que suportam a aplicação.
<<<<<< head
Origin/Main
- ***Tipo de Projeto:*** Biblioteca de Classes
- ***Responsabilidade:*** Orquestra a execução das operações de negócio, utilizando comandos e consultas (em uma abordagem CQRS). Esta camada coordena a comunicação entre a camada de domínio e outras camadas.
Project Type: Webapi
Responsibility: Exhibit HTTP endpoints for external customers, such as front end applications or other services. Includes controllers who receive HTTP requests and orchestrate the execution of commands and consultations.