Este é um projeto evolutivo de um sistema de gerenciamento de tarefas (Task Manager), desenvolvido com o objetivo de praticar e demonstrar a progressão de conhecimento em Java, boas práticas de programação, persistência de dados, arquitetura e organização de código.
Criar um projeto simples e ir aprimorando gradualmente seus recursos, arquitetura e tecnologias utilizadas, simulando como aplicações reais são construídas e mantidas com o tempo.
- Java
- IDE: intellij idea
- H2 Database
- Spring Boot
- Git & GitHub
Cada nível representa uma etapa de aprendizado e melhoria da aplicação.
- CRUD de tarefas (adicionar, listar, atualizar, remover)
- Interface via terminal com
Scanner
- Dados salvos em uma
List<String>
- Estrutura simples com classes
Main
eFunctions
- Nenhuma persistência (os dados se perdem ao encerrar)
- Salvar tarefas em um arquivo
.txt
- Carregar tarefas automaticamente na inicialização
- Uso de
FileWriter
eBufferedReader
- Separação de lógica de persistência
- Separar responsabilidades em: Model, Service, Repository, Controller
- Organização de pacotes por domínio
- Aplicação de boas práticas (ex: princípio da responsabilidade única)
- Transformar o sistema em uma API RESTful
- Endpoints para CRUD de tarefas (
GET
,POST
,PUT
,DELETE
) - Retorno e recebimento de dados em JSON
- Criar uma interface web para consumo da API
- Pode ser com HTML/CSS/JS ou frameworks como React
- Separação total entre frontend e backend
- Criar sistema de cadastro e login
- Cada usuário gerencia suas próprias tarefas
- Uso de tokens JWT e Spring Security
- Testes unitários com JUnit
- Testes de integração com Spring Test
- Garantia de funcionamento da aplicação após mudanças
- Publicar a aplicação em nuvem (Render, Vercel, Heroku ou com Docker)
- Fazer deploy da API e/ou frontend para acesso externo
- README completo e atualizado
- Swagger UI para documentação da API
- Uso de
.gitignore
, boas mensagens de commit e organização do repositório
Este projeto é uma forma prática de fixar conceitos como:
- Evolução progressiva de sistemas
- Boas práticas em Java
- Persistência de dados
- Arquitetura orientada a camadas
- Desenvolvimento de APIs RESTful
- Testes e deploy
Maria Eduarda Braz