Sistema backend para gerenciamento de tarefas desenvolvido com Spring Boot, seguindo boas práticas de arquitetura em camadas e preparado para evolução futura.
O Task App é uma API RESTful voltada para o gerenciamento de tarefas, permitindo a organização de atividades em listas. O projeto foi desenvolvido com foco em boas práticas de desenvolvimento backend, como separação de responsabilidades, uso de DTOs e modelagem de domínio bem definida.
O projeto segue uma arquitetura em camadas, organizada da seguinte forma:
- Controller → Responsável pela exposição dos endpoints REST
- Service → Contém as regras de negócio
- Domain → Entidades e DTOs
- Repository → Comunicação com o banco de dados (JPA)
A estrutura foi pensada para facilitar manutenção, testes e futura migração para Clean Architecture.
- Task
- Título
- Descrição
- Status
- Prioridade
- Data de vencimento
- TaskList
- Nome da lista
- Relacionamento com tarefas
O projeto utiliza UUID como identificador e Enums para controle de status e prioridade.
- Spring Data JPA + Hibernate
- Mapeamento objeto-relacional (ORM)
- Relacionamentos:
- OneToMany (TaskList → Task)
- ManyToOne (Task → TaskList)
- Uso de FetchType.LAZY para otimização
- Configuração de cascade para operações automáticas
O projeto utiliza DTOs (Data Transfer Objects) para desacoplar a camada de apresentação da camada de domínio, garantindo:
- Maior segurança na exposição de dados
- Organização e clareza no código
- Facilidade de manutenção
Endpoints iniciais seguem padrão RESTful:
- CRUD de tarefas
- Gerenciamento de listas
- Respostas padronizadas em JSON
- Java 21
- Spring Boot
- Spring Data JPA
- Hibernate
- PostgreSQL (ou outro banco relacional)
- Maven
- Clone o repositório:
git clone https://github.com/Marcus-Austin/task-app.git - Acesse a pasta do projeto:
cd task-app - Configure o banco de dados no
application.properties - Execute a aplicação:
./mvnw spring-boot:run
- Implementação de autenticação com JWT (Spring Security)
- Controle de usuários
- Paginação e filtros avançados
- Documentação com Swagger/OpenAPI
- Testes automatizados (JUnit + Mockito)
🚧 Em desenvolvimento — estrutura base concluída e pronta para evolução.
Desenvolvido por Marcus Austin