API para a gestão de check-ins em academias, feita em .NET 8 é uma recriação de uma antiga API feita em Node.js. Nela é possível realizar o gerenciamento de academias, check-ins e informações de usuário, abordando conceitos, como CQRS, RBAC, DDD e SOLID principles.
User
| Method | Path | Action |
|---|---|---|
| POST | /api/v1/register | Realiza o cadastro de um novo usuário |
| POST | /api/v1/session | Realiza a autenticação do usuário |
| GET | /api/v1/user/profile | Resgata as informações do usuário |
Gyms
| Method | Path | Action |
|---|---|---|
| POST | /api/v1/gyms | Realiza o cadastro de uma nova academia (Apenas admin) |
| GET | /api/v1/nearby | Busca as academias próxmias com base na localização do usuário |
| GET | /api/v1/search | Busca por academias |
Check-Ins
| Method | Path | Action |
|---|---|---|
| POST | /api/v1/check-ins | Realiza o cadastro de um novo check-in |
| GET | /api/v1/check-ins/user/:userId/history | Resgata o histórico de check-ins do usuário |
| GET | /api/v1/check-ins/user/:userId/metrics | Resgata as métricas de check-ins do usuário |
| PATCH | /api/v1/check-ins/:checkInId/validate | Faz a validação de um check-in ao chegar na academia |
/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
Tipo de Projeto: Biblioteca de Classes
Responsabilidade: Contém as regras de negócio fundamentais e a lógica central do sistema, incluindo entidades, objetos de valor, agregados e serviços de domínio.
Tipo de Projeto: Biblioteca de Classes
Responsabilidade: Contém componentes reutilizáveis em toda a aplicação, como DTOs, eventos de domínio, exceções comuns, etc.
<<<<<<< HEAD
origin/main - Tipo de Projeto: Biblioteca de Classes
- ***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.
Tipo de Projeto: WebAPI
Responsabilidade: Expor endpoints HTTP para clientes externos, como aplicações front-end ou outros serviços. Inclui controladores que recebem requisições HTTP e orquestram a execução dos comandos e consultas.