O NexusSocial é uma solução backend desenhada para conectar doadores e instituições de caridade de forma assertiva. O objetivo principal é eliminar o desencontro de informações, permitindo que ONGs publiquem suas necessidades urgentes e doadores encontrem causas onde seu impacto será imediato.
Status do Projeto: MVP Finalizado / Em expansão.
Muitas instituições carecem de visibilidade para demandas específicas (medicamentos, alimentos sazonais, itens de higiene). O NexusSocial centraliza essas demandas, permitindo uma logística de solidariedade muito mais eficiente.
A API foi construída sob os princípios da Clean Architecture e Domain-Driven Design (Lite), garantindo que a lógica de negócio seja independente de frameworks e fácil de testar.
- Instituições cadastram necessidades específicas com metas de quantidade.
- Doadores registram contribuições vinculadas a essas necessidades.
- Gestão de Ciclo de Vida: O sistema reavalia o status da demanda automaticamente:
OPEN➔ Criada, aguardando doação.IN_PROGRESS➔ Recebendo doações ativamente.FULFILLED➔ Meta atingida. O sistema encerra o recebimento para garantir transparência e evitar desperdício.
Neste projeto, apliquei práticas avançadas para garantir a qualidade de software:
- Arquitetura em Camadas: Separação clara entre Controllers, Services e Repositories.
- Testes Automatizados: Cobertura de testes unitários e de integração utilizando JUnit 5, Mockito e MockMvc.
- Integridade Referencial: Modelagem de banco de dados no PostgreSQL com constraints rigorosas para evitar inconsistências de dados.
- Padronização REST: Tratamento global de exceções e uso de DTOs (
Records) para contratos de API limpos.
Para entender as decisões de design, padrões de projeto (Layered Architecture, DTOs, Records), modelagem de dados e como a pirâmide de testes foi estruturada, acesse nosso:
👉 Guia Técnico de Desenvolvimento (Technical README)
Graças ao uso de Docker, você pode subir o ambiente completo (API + Banco de Dados) com apenas um comando:
# Clone o repositório
git clone https://github.com/Martins20321/Nexus-Social-API.git
# Acesse a pasta
cd Nexus-Social-API
# Suba a infraestrutura (API + Banco)
docker compose up --buildApós o container subir, você pode interagir com a aplicação:
- Acessar a Documentação: Abra http://localhost:8080/swagger-ui.html para explorar e testar os endpoints via Swagger.
- Monitorar Logs: Utilize
docker logs -f nexus-apipara acompanhar o comportamento da aplicação em tempo real. - Encerrar o Ambiente: Use
docker compose downpara parar os serviços e remover os containers de forma segura.
Para garantir a integridade do código e seguir os requisitos de qualidade:
- Executar Testes:
./mvnw test - Executar Análise Estática (Lint):
./mvnw checkstyle:check
Nota: Estes processos são executados automaticamente pelo GitHub Actions em cada push.
Este projeto está licenciado sob a MIT License.
José Gabriel Martins
🔗 Repositório Público: https://github.com/Martins20321/Nexus-Social-API