Skip to content

FlpSza/CondoTech.API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

CondoTech API

API RESTful para gerenciamento de condomínios desenvolvida em .NET 8 seguindo os princípios de Clean Architecture.

🏗️ Arquitetura

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)

🚀 Tecnologias

  • .NET 8
  • Entity Framework Core 8
  • MySQL (Pomelo)
  • JWT Authentication
  • AutoMapper
  • FluentValidation
  • Swagger/OpenAPI
  • BCrypt para hash de senhas

📋 Pré-requisitos

  • .NET 8 SDK
  • MySQL Server
  • Visual Studio 2022 ou VS Code

⚙️ Configuração

  1. Clone o repositório
git clone <repository-url>
cd CondoTech.API
  1. Configure o banco de dados

Edite appsettings.Development.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=condotech_dev;User=root;Password=sua_senha;"
  }
}
  1. Execute as migrations
cd src/CondoTech.API
dotnet ef database update
  1. Execute o projeto
dotnet run

A API estará disponível em:

  • HTTP: http://localhost:5000
  • HTTPS: https://localhost:5001
  • Swagger: https://localhost:5001/swagger

📚 Endpoints Principais

Autenticação

  • POST /api/auth/login - Login
  • POST /api/auth/register - Registro
  • POST /api/auth/validate - Validar token

Condomínios

  • GET /api/condominios - Listar todos
  • GET /api/condominios/{id} - Buscar por ID
  • POST /api/condominios - Criar
  • PUT /api/condominios/{id} - Atualizar
  • DELETE /api/condominios/{id} - Deletar
  • GET /api/condominios/{id}/dashboard - Estatísticas

Outros Endpoints

  • Unidades
  • Moradores
  • Financeiro
  • Boletos
  • Reservas
  • Ocorrências
  • Portaria
  • Assembleias

🔒 Autenticação

A API utiliza JWT Bearer Token. Para autenticar:

  1. Faça login em /api/auth/login
  2. Use o token retornado no header: Authorization: Bearer {token}

🗄️ Banco de Dados

Principais Entidades

  • 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

🔧 Desenvolvimento

Adicionar Migration

dotnet ef migrations add NomeDaMigration --project src/CondoTech.Infrastructure --startup-project src/CondoTech.API

Atualizar Database

dotnet ef database update --project src/CondoTech.Infrastructure --startup-project src/CondoTech.API

Rodar Tests

dotnet test

📝 Variáveis de Ambiente

Crie 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
  }
}

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT.

👥 Autores

  • CondoTech Team

📞 Suporte

Para suporte, envie um email para support@condotech.app

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages