TaskFlow é uma aplicação full-stack para gerenciamento de tarefas, desenvolvida com Java Spring Boot no backend e HTML/CSS/JavaScript puro no frontend. O projeto permite criar listas de tarefas, organizar tarefas por prioridade, acompanhar progresso e gerenciar o status de cada item.
- Gerenciamento de Listas: Crie, edite e exclua listas de tarefas
- Tarefas: Adicione tarefas com título, descrição, data de vencimento e prioridade (Baixa, Média, Alta)
- Status: Marque tarefas como concluídas ou abertas
- Filtros: Visualize todas as tarefas, apenas abertas ou apenas concluídas
- Estatísticas: Acompanhe o progresso com contadores visuais
- Interface Responsiva: Design moderno e adaptável a diferentes telas
- Java 17
- Spring Boot 3.1
- Spring Data JPA - Persistência de dados
- Spring Web - APIs RESTful
- H2 Database - Banco de dados em memória (desenvolvimento)
- Maven - Gerenciamento de dependências
- HTML5 semântico
- CSS3 com design system próprio
- JavaScript puro (ES6+)
- API Fetch para comunicação com o backend
src/
├── main/
│ ├── java/com/padovani/tasks/
│ │ ├── controllers/ # Controladores REST e tratamento de exceções
│ │ ├── domain/ # Entidades JPA e DTOs
│ │ ├── mappers/ # Mapeadores entre entidades e DTOs
│ │ ├── repositories/ # Interfaces para acesso a dados
│ │ └── services/ # Lógica de negócio
│ │
│ └── resources/
│ ├── static/ # Arquivos estáticos (CSS, JS)
│ │ ├── css/
│ │ │ └── style.css
│ │ └── js/
│ │ ├── api.js # Camada de comunicação com a API
│ │ ├── index.js # Lógica da página de listas
│ │ ├── tasks.js # Lógica da página de tarefas
│ │ └── ui.js # Utilitários de interface
│ │
│ ├── index.html # Página de listas
│ ├── tasks.html # Página de tarefas
│ └── application.properties
GET /api/task-lists- Lista todas as listasPOST /api/task-lists- Cria uma nova listaGET /api/task-lists/{id}- Busca uma lista específicaPUT /api/task-lists/{id}- Atualiza uma listaDELETE /api/task-lists/{id}- Remove uma lista
GET /task-lists/{listId}/tasks- Lista tarefas de uma listaPOST /task-lists/{listId}/tasks- Cria uma nova tarefaGET /task-lists/{listId}/tasks/{taskId}- Busca uma tarefa específicaPUT /task-lists/{listId}/tasks/{taskId}- Atualiza uma tarefaDELETE /task-lists/{listId}/tasks/{taskId}- Remove uma tarefa
O projeto utiliza um design system próprio com as seguintes características:
- Cores: Tema escuro moderno com acentos em roxo (#a78bfa)
- Componentes: Cards, modais, botões e badges reutilizáveis
- Feedback Visual: Loading bars, toasts e animações sutis
- Tipografia: Sistema de hierarquia visual clara
- Java 17 ou superior
- Maven 3.6 ou superior
- Clone o repositório
git clone https://github.com/Vitor-Padovani/TaskFlow-Project
cd taskflow- Execute a aplicação
./mvnw spring-boot:run- Acesse no navegador
http://localhost:8080
- Clean Architecture: Separação clara entre camadas (controllers, services, repositories)
- DTO Pattern: Uso de records para transferência de dados
- Mapper Pattern: Separação entre entidades e objetos de resposta
- Tratamento de Erros: GlobalExceptionHandler para respostas consistentes
- Frontend Vanilla: Sem frameworks pesados, JavaScript puro e performático
- UX/UI: Feedback visual para todas as ações do usuário
id: UUID (chave primária)title: String (obrigatório)description: Stringtasks: Lista de Task (relação OneToMany)created: LocalDateTimeupdated: LocalDateTime
id: UUID (chave primária)title: String (obrigatório)description: StringdueDate: LocalDateTimepriority: Enum (HIGH, MEDIUM, LOW)status: Enum (OPEN, COMPLETE)taskList: TaskList (relação ManyToOne)created: LocalDateTimeupdated: LocalDateTime
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido por Padovani como parte do portfólio de desenvolvimento Java/Spring.
