O Family Cash Card é uma API desenvolvida durante o curso do Spring Academy. Seu objetivo é permitir que pais gerenciem as mesadas dos filhos virtualmente.
- Criação, Edição e Exclusão de Cartões de Dinheiro
- Autenticação e Autorização com Spring Security
- Paginação e Ordenação de cartões
- API REST seguindo as melhores práticas
A aplicação foi desenvolvida utilizando uma arquitetura em camadas, dividida em:
-
Camada de Segurança (Spring Security):
- Configuração de segurança para proteger os endpoints.
- Implementação de autenticação básica e autorização baseada em roles.
-
Camada de Controle (Controllers):
- Controladores REST para gerenciar requisições HTTP.
- Endpoints para operações CRUD (Create, Read, Update, Delete) dos Cash Cards.
-
Camada de Serviço (Services):
- Implementação da lógica de negócios.
- Intermediação entre a camada de controle e a camada de dados.
-
Camada de Dados (Repositories):
- Interface com o banco de dados utilizando Spring Data JPA.
- Repositórios para operações de persistência de dados.
O desenvolvimento da aplicação seguiu os seguintes princípios e práticas:
-
RESTful API: A aplicação foi projetada seguindo os princípios REST, utilizando verbos HTTP apropriados (GET, POST, PUT, DELETE) e códigos de status (200 OK, 201 Created, 204 No Content, 404 Not Found).
-
Test-Driven Development (TDD): Utilização de TDD para garantir que cada funcionalidade fosse devidamente testada antes de ser implementada. Testes unitários e de integração foram desenvolvidos utilizando JUnit.
-
Steel Thread: Abordagem de desenvolvimento inicial para validar todos os pontos de integração e a arquitetura desde o início, minimizando riscos de funcionalidade.
-
Red, Green, Refactor: Processo de desenvolvimento iterativo onde o código é primeiro escrito para falhar (Red), depois para passar (Green) e, em seguida, é refatorado para melhoria contínua.
- Java
- Spring Boot
- Spring Security
- Spring Data JPA