API RESTful para gerenciamento de condomínios desenvolvida em .NET 8 seguindo os princípios de Clean Architecture.
O projeto segue o padrão Clean Architecture dividido em camadas:
- CondoTech.API: Camada de apresentação (Controllers, Middlewares, Filters)
- CondoTech.Application: Camada de aplicação (DTOs, Services, Validators)
- CondoTech.Domain: Camada de domínio (Entities, Enums, Interfaces)
- CondoTech.Infrastructure: Camada de infraestrutura (Data, Repositories, Identity)
- CondoTech.Shared: Camada compartilhada (Constants, Exceptions, Helpers)
- .NET 8
- Entity Framework Core 8
- MySQL (Pomelo)
- JWT Authentication
- AutoMapper
- FluentValidation
- Swagger/OpenAPI
- BCrypt para hash de senhas
- .NET 8 SDK
- MySQL Server
- Visual Studio 2022 ou VS Code
- Clone o repositório
git clone <repository-url>
cd CondoTech.API- Configure o banco de dados
Edite appsettings.Development.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=condotech_dev;User=root;Password=sua_senha;"
}
}- Execute as migrations
cd src/CondoTech.API
dotnet ef database update- Execute o projeto
dotnet runA API estará disponível em:
- HTTP:
http://localhost:5000 - HTTPS:
https://localhost:5001 - Swagger:
https://localhost:5001/swagger
POST /api/auth/login- LoginPOST /api/auth/register- RegistroPOST /api/auth/validate- Validar token
GET /api/condominios- Listar todosGET /api/condominios/{id}- Buscar por IDPOST /api/condominios- CriarPUT /api/condominios/{id}- AtualizarDELETE /api/condominios/{id}- DeletarGET /api/condominios/{id}/dashboard- Estatísticas
- Unidades
- Moradores
- Financeiro
- Boletos
- Reservas
- Ocorrências
- Portaria
- Assembleias
A API utiliza JWT Bearer Token. Para autenticar:
- Faça login em
/api/auth/login - Use o token retornado no header:
Authorization: Bearer {token}
- Condominio: Dados do condomínio
- Unidade: Apartamentos/casas
- Usuario: Usuários do sistema
- Morador: Moradores das unidades
- Boleto: Boletos de cobrança
- Lancamento: Lançamentos financeiros
- Reserva: Reservas de áreas comuns
- Ocorrencia: Ocorrências/chamados
- Visitante: Controle de visitantes
dotnet ef migrations add NomeDaMigration --project src/CondoTech.Infrastructure --startup-project src/CondoTech.APIdotnet ef database update --project src/CondoTech.Infrastructure --startup-project src/CondoTech.APIdotnet testCrie um arquivo appsettings.json com:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=condotech;User=root;Password=senha;"
},
"JwtSettings": {
"SecretKey": "sua-chave-secreta-super-segura",
"Issuer": "CondoTechAPI",
"Audience": "CondoTechApp",
"ExpirationInHours": 24
}
}- Fork o projeto
- Crie uma branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT.
- CondoTech Team
Para suporte, envie um email para support@condotech.app