Interface web moderna para gerenciamento de tarefas desenvolvida em Angular, que se conecta à API TaskFlow para oferecer uma experiência completa de produtividade.
TaskFlow Web é uma aplicação frontend moderna construída com Angular que oferece uma interface intuitiva para gerenciamento de tarefas. A aplicação se comunica com a API TaskFlow para fornecer funcionalidades completas de CRUD de tarefas, autenticação JWT e estatísticas em tempo real.
- 🎨 Interface moderna e responsiva com PrimeNG
- 🌓 Suporte a modo escuro/claro
- 🔐 Autenticação JWT integrada
- 📊 Dashboard com estatísticas em tempo real
- 📱 Design responsivo
- ⚡ Performance otimizada com Zoneless Change Detection
- 🎯 Arquitetura modular e escalável
- ✅ Login com validação de email e senha
- ✅ Registro de novos usuários
- ✅ Proteção de rotas com AuthGuard
- ✅ Interceptor automático para tokens JWT
- ✅ Logout seguro
- ✅ Criação de novas tarefas
- ✅ Visualização de tarefas em lista paginada
- ✅ Edição inline de tarefas
- ✅ Marcação de tarefas como concluídas
- ✅ Exclusão de tarefas
- ✅ Filtros (Todas, Ativas, Concluídas)
- ✅ Paginação com controle de tamanho
- ✅ Estatísticas em tempo real
- ✅ Contador de tarefas totais, ativas e concluídas
- ✅ Atualização automática de dados
- ✅ Tema escuro/claro com persistência
- ✅ Notificações toast para feedback
- ✅ Loading states e tratamento de erros
- ✅ Design responsivo
- Angular 20.2.0 - Framework principal
- TypeScript 5.9 - Linguagem de programação
- PrimeNG 20.2.0 - Biblioteca de componentes UI
- PrimeIcons 7.0 - Ícones
- Tailwind CSS 4.1 - Framework de CSS utilitário
- RxJS 7.8 - Programação reativa
- Angular Router - Navegação SPA
- Angular Forms - Formulários reativos
- Angular HTTP Client - Comunicação com API
- Angular CLI 20.2.0 - Ferramenta de desenvolvimento
- TypeScript - Tipagem estática
Antes de executar o projeto, certifique-se de ter:
- Node.js 18+ instalado
- npm 9+ ou yarn
- Angular CLI 20+ instalado globalmente
- TaskFlow API rodando em
http://localhost:8080
-
Clone o repositório:
git clone https://github.com/seu-usuario/TaskFlow_web.git cd TaskFlow_web -
Instale as dependências:
npm install
Ou usando yarn:
yarn install
-
Certifique-se de que a API está rodando:
- A aplicação espera que a API esteja disponível em
http://localhost:8080 - Consulte a documentação da TaskFlow API para configuração
- A aplicação espera que a API esteja disponível em
npm start
# ou
ng serveA aplicação estará disponível em http://localhost:4200/
npm run watch
# ou
ng build --watch --configuration developmentsrc/
├── app/
│ ├── components/ # Componentes reutilizáveis
│ │ └── switch-theme/ # Componente de alternância de tema
│ ├── interfaces/ # Definições de tipos TypeScript
│ │ ├── statsInterface.ts # Interface para estatísticas
│ │ ├── taskInterface.ts # Interface para tarefas
│ │ └── userInterface.ts # Interface para usuários
│ ├── pages/ # Páginas/Views da aplicação
│ │ ├── login/ # Página de login
│ │ ├── register/ # Página de registro
│ │ └── main/ # Página principal (dashboard)
│ ├── services/ # Serviços e utilitários
│ │ ├── authGuard.ts # Guard de autenticação
│ │ ├── authInterceptor.ts # Interceptor JWT
│ │ ├── authService.ts # Serviço de autenticação
│ │ └── task.ts # Serviço de tarefas
│ ├── app.config.ts # Configuração da aplicação
│ ├── app.routes.ts # Configuração de rotas
│ └── app.ts # Componente raiz
├── index.html # HTML principal
├── main.ts # Bootstrap da aplicação
├── mypreset.ts # Preset customizado do PrimeNG
└── styles.css # Estilos globais
Componente responsável pela alternância entre tema claro e escuro.
Funcionalidades:
- Persistência da preferência no localStorage
- Ícone dinâmico (sol/lua)
- Aplicação automática do tema salvo
Uso:
<app-switch-theme></app-switch-theme>Gerencia autenticação de usuários.
Métodos:
login(data): Autentica usuárioregister(data): Registra novo usuárioisLoggedIn(): Verifica se usuário está autenticado
Gerencia operações de tarefas.
Métodos:
createTask(data): Cria nova tarefalistTask(page, size, completed?): Lista tarefas com paginaçãoupdateTask(data): Atualiza tarefa existentedeleteTask(id): Remove tarefagetStatsTask(): Obtém estatísticas das tarefas
Protege rotas que requerem autenticação.
Adiciona automaticamente o token JWT às requisições HTTP.
interface TaskInterface {
id: number;
title: string;
description: string;
completed: boolean;
}interface UserInterface {
login: string;
password: string;
}interface StatsInterface {
totalTasks: number;
completedTasks: number;
activeTasks: number;
}| Rota | Componente | Descrição | Guard |
|---|---|---|---|
/ |
Main | Dashboard principal | ✅ AuthGuard |
/login |
Login | Página de login | ❌ |
/register |
Register | Página de registro | ❌ |
/** |
- | Redirect para / |
- |
A aplicação suporta dois temas:
- Tema Claro: Padrão, com cores claras
- Tema Escuro: Ativado pela classe
.my-app-darkno elemento<html>
O tema é configurado através do preset customizado em mypreset.ts e gerenciado pelo componente SwitchTheme.
npm run build
# ou
ng buildOs arquivos de build serão gerados no diretório dist/.
npm run build:dev
# ou
ng build --configuration development- Produção: Otimização habilitada, source maps desabilitados
- Desenvolvimento: Otimização desabilitada, source maps habilitados
A aplicação está configurada para se conectar com a API em:
- URL Base:
http://localhost:8080 - Endpoints de Auth:
/auth/login,/auth/register - Endpoints de Tasks:
/task/*
O AuthInterceptor adiciona automaticamente o header:
Authorization: Bearer <token>
{
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test"
}-
Execute o build:
npm run build
-
Os arquivos estarão em
dist/TaskFlow_site/ -
Sirva os arquivos estáticos com qualquer servidor web
Para diferentes ambientes, ajuste as URLs da API nos serviços:
- Development:
http://localhost:8080 - Production:
https://sua-api.com
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está licenciado sob a MIT License.
Desenvolvido por Arthur Sousa (@arthurdev_.)
- TaskFlow API - Backend da aplicação
- Angular Documentation
- PrimeNG Documentation
- Tailwind CSS Documentation
⭐ Se este projeto foi útil para você, considere dar uma estrela no repositório!



