Este é o frontend em Angular para o aplicativo de gerenciamento de tarefas e notas, desenvolvido para integrar com o backend Java Spring Boot.
- Autenticação JWT: Login e registro de usuários
- Dashboard Interativo: Interface principal com notas e listas de tarefas
- Notas Adesivas: Criação, edição e exclusão de notas
- Listas de Tarefas: Gerenciamento completo de listas e tarefas
- Interface Responsiva: Compatível com desktop e mobile
- Angular 19.2.0
- PrimeNG (componentes UI)
- Angular JWT (@auth0/angular-jwt)
- Moment.js (manipulação de datas)
- TypeScript
- CSS3 com Flexbox e Grid
src/
├── app/
│ ├── core/ # Modelos e serviços centrais
│ │ ├── model.ts # Classes e interfaces TypeScript
│ │ └── error-handler.service.ts
│ ├── security/ # Autenticação e segurança
│ │ ├── auth.service.ts # Serviço de autenticação JWT
│ │ ├── auth.guard.ts # Guard de proteção de rotas
│ │ └── login-form/ # Componente de login
│ ├── usuarios/ # Módulo de usuários
│ │ └── usuario-cadastro/ # Componente de cadastro
│ ├── dashboard/ # Tela principal
│ │ └── dashboard/ # Componente do dashboard
│ ├── services/ # Serviços de API
│ │ ├── nota.service.ts
│ │ ├── lista-tarefa.service.ts
│ │ └── tarefa.service.ts
│ ├── app.component.* # Componente raiz
│ ├── app.config.ts # Configurações da aplicação
│ └── app.routes.ts # Definição de rotas
└── styles.css # Estilos globais
- Node.js 20.x ou superior
- npm 10.x ou superior
- Angular CLI 19.2.0
-
Clone ou extraia o projeto
-
Instale as dependências:
npm install
-
Configure o backend:
- Certifique-se de que o backend Java Spring Boot esteja rodando em
http://localhost:8080 - As rotas da API devem estar configuradas conforme esperado pelos serviços
- Certifique-se de que o backend Java Spring Boot esteja rodando em
# Desenvolvimento
ng serve
# Build para produção
ng build
# Testes
ng testA aplicação estará disponível em http://localhost:4200
O frontend espera que o backend forneça os seguintes endpoints:
POST /api/usuarios/login- Login do usuárioPOST /api/usuarios/registrar- Registro de novo usuário
GET /api/notas/usuario/{userId}- Listar notas do usuárioPOST /api/notas- Criar nova notaPUT /api/notas/{id}- Atualizar notaDELETE /api/notas/{id}- Excluir notaPATCH /api/notas/{id}/posicao- Atualizar posição da nota
GET /api/listas-tarefas/usuario/{userId}- Listar listas do usuárioPOST /api/listas-tarefas- Criar nova listaPUT /api/listas-tarefas/{id}- Atualizar listaDELETE /api/listas-tarefas/{id}- Excluir listaPATCH /api/listas-tarefas/{id}/posicao- Atualizar posição da lista
GET /api/tarefas/lista/{listaId}- Listar tarefas de uma listaPOST /api/tarefas- Criar nova tarefaPUT /api/tarefas/{id}- Atualizar tarefaDELETE /api/tarefas/{id}- Excluir tarefaPATCH /api/tarefas/{id}/toggle-concluida- Marcar/desmarcar como concluída
O backend deve permitir requisições do frontend:
@CrossOrigin(origins = "http://localhost:4200")O token JWT deve conter as seguintes informações no payload:
sub: email do usuáriouser_id: ID do usuáriouser_name: email do usuárioname: nome completo do usuário
- Login com email e senha
- Registro de novos usuários
- Proteção de rotas com guards
- Armazenamento seguro do token JWT
- Logout automático quando token expira
- Interface tipo "workspace" com blocos arrastáveis
- Visualização de notas e listas de tarefas
- Criação rápida de novos itens
- Edição inline de conteúdo
- Criação de notas com título e conteúdo
- Edição e exclusão de notas
- Posicionamento livre no workspace
- Interface similar a post-its
- Criação de listas de tarefas
- Adição de tarefas às listas
- Marcação de tarefas como concluídas
- Data de vencimento para tarefas
- Organização visual das listas
- Layout adaptável para diferentes tamanhos de tela
- Componentes otimizados para touch em dispositivos móveis
- Grid responsivo para organização dos blocos
Gerencia autenticação JWT, login, logout e verificação de permissões.
Centraliza o tratamento de erros da aplicação com mensagens amigáveis.
Componente principal que orquestra a exibição e interação com notas e listas.
AuthGuard: Protege rotas que requerem autenticação
O projeto utiliza PrimeNG com tema Aura e inclui:
- Paleta de cores consistente
- Componentes responsivos
- Ícones do PrimeIcons
- Grid system do PrimeFlex
- Tokens JWT armazenados no localStorage
- Interceptadores automáticos para adicionar tokens às requisições
- Validação de expiração de tokens
- Redirecionamento automático para login quando não autenticado
Para expandir a aplicação, considere:
- Funcionalidades Drag & Drop: Implementar arrastar e soltar para reposicionar blocos
- Colaboração: Permitir compartilhamento de listas entre usuários
- Notificações: Sistema de lembretes para tarefas com vencimento
- Temas: Múltiplos temas visuais
- Offline: Suporte para funcionamento offline com sincronização
- Anexos: Permitir anexar arquivos às notas e tarefas
Para dúvidas ou problemas:
- Verifique se o backend está rodando corretamente
- Confirme se as rotas da API estão configuradas
- Verifique o console do navegador para erros JavaScript
- Confirme se as dependências estão instaladas corretamente