- Moved ROADMAP_EXECUCAO.md to docs/ia/ - Moved PROGRESSO.md to docs/ia/ - Moved SESSION_1_RECAP.md to docs/ia/ - Moved GIT_PUSH_INSTRUCTIONS.md to docs/ia/ - Keeps instrucoes-*.md in docs/ root for general reference - Better organization for project documentation
6.3 KiB
🚀 ROADMAP DE EXECUÇÃO - TASK MANAGER
Data Início: 1 de dezembro de 2025
Status Atual: Setup & Configuração
📊 Visão Geral do Progresso
Fase 1: Backend [████░░░░░░] 10%
Fase 2: Frontend [██░░░░░░░░] 5%
Fase 3: Mobile [░░░░░░░░░░] 0%
Fase 4: DevOps/Deploy [░░░░░░░░░░] 0%
🎯 FASE 1: BACKEND (NestJS + Supabase) - EM PROGRESSO
Passo 1.1: Setup & Dependências ⏳
Objetivo: Preparar ambiente backend com todas as dependências críticas
Tarefas:
- Instalar Supabase SDK (
@supabase/supabase-js) - Instalar dotenv (
dotenv) - Instalar JWT (
@nestjs/jwt,@nestjs/passport) - Instalar TypeORM (opcional, Supabase usa PostgREST)
- Criar
.env.example - Estruturar pasta
src/com módulos
Dependências na package.json:
{
"@supabase/supabase-js": "^2.x",
"@nestjs/config": "^3.x",
"@nestjs/jwt": "^12.x",
"@nestjs/passport": "^10.x",
"passport": "^0.7.x",
"passport-jwt": "^4.x",
"dotenv": "^16.x",
"joi": "^17.x"
}
Arquivos a criar/modificar:
backend-api/.env.examplebackend-api/src/config/(arquivos de configuração)
Passo 1.2: Módulo de Autenticação 🔐
Objetivo: Implementar signup, login, logout com JWT
Estrutura a criar:
src/
├── auth/
│ ├── auth.module.ts
│ ├── auth.service.ts
│ ├── auth.controller.ts
│ ├── strategies/
│ │ └── jwt.strategy.ts
│ ├── guards/
│ │ └── jwt.guard.ts
│ └── dto/
│ ├── signup.dto.ts
│ └── login.dto.ts
├── users/
│ ├── users.module.ts
│ ├── users.service.ts
│ └── dto/
│ └── create-user.dto.ts
└── common/
└── decorators/
└── current-user.decorator.ts
Endpoints:
POST /auth/signup- Registrar usuárioPOST /auth/login- LoginPOST /auth/logout- LogoutGET /auth/me- Perfil atual (requer JWT)
Passo 1.3: Módulo de Tarefas 📝
Objetivo: Implementar CRUD de tarefas com segurança (RLS)
Estrutura a criar:
src/
└── tasks/
├── tasks.module.ts
├── tasks.service.ts
├── tasks.controller.ts
└── dto/
├── create-task.dto.ts
└── update-task.dto.ts
Endpoints:
GET /tasks- Listar tarefas do usuárioGET /tasks/:id- Detalhes da tarefaPOST /tasks- Criar tarefaPATCH /tasks/:id- Atualizar tarefaDELETE /tasks/:id- Deletar tarefa
Passo 1.4: Implementar RLS (Supabase) 🔒
Objetivo: Configurar Row Level Security no banco
SQL a executar:
-- Tabela tasks (já deve existir em Auth do Supabase)
CREATE TABLE IF NOT EXISTS tasks (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID NOT NULL REFERENCES auth.users(id),
title TEXT NOT NULL,
description TEXT,
completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- RLS Policy: Usuário só acessa suas tarefas
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Users can only access their own tasks"
ON tasks
FOR ALL
USING (auth.uid() = user_id)
WITH CHECK (auth.uid() = user_id);
Passo 1.5: Documentação da API 📚
Objetivo: Documenta endpoints e respostas
Arquivo: backend-api/API.md
- Descrever cada endpoint
- Exemplos de request/response
- Códigos de erro
- Authentication flow
Passo 1.6: Dockerfile Backend 🐳
Objetivo: Containerizar backend para deploy
Arquivo: backend-api/Dockerfile
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "start:prod"]
🎯 FASE 2: FRONTEND (Next.js) - PENDENTE
Passo 2.1: Setup & Componentes Base ⏳
Objetivo: Configurar Design System e componentes reutilizáveis
Tarefas:
- Instalar
@supabase/supabase-js - Instalar
lucide-react(ícones) - Configurar Google Fonts em
globals.css - Criar arquivo de tokens (colors, spacing, typography)
- Estruturar pasta
src/components/
Componentes a criar:
Button.tsx(Primary, Secondary, Tertiary, Danger)Input.tsx(com validation)Card.tsxModal.tsxCheckbox.tsxTaskItem.tsx
Passo 2.2: Autenticação (Frontend) 🔐
Objetivo: Integrar login/signup com Supabase
Páginas a criar:
app/(auth)/login/page.tsxapp/(auth)/signup/page.tsxapp/(auth)/forgot-password/page.tsx
Componentes:
LoginForm.tsxSignupForm.tsx
Passo 2.3: Dashboard de Tarefas 📋
Objetivo: Interface de CRUD de tarefas
Páginas a criar:
app/(dashboard)/tasks/page.tsx
Componentes:
TaskList.tsxTaskForm.tsxTaskFilters.tsxEmptyState.tsx
Passo 2.4: Realtime Sync 🔄
Objetivo: Sincronização em tempo real com WebSockets
Implementar:
- Supabase Realtime subscriptions
- Auto-atualização de tarefas
🎯 FASE 3: MOBILE (Flutter) - PLANEJADO
Passo 3.1: Criar Projeto Flutter
Passo 3.2: Design System Flutter
Passo 3.3: Autenticação Flutter
Passo 3.4: Telas de Tarefas
Passo 3.5: Realtime Sync
🎯 FASE 4: DEVOPS & DEPLOY - PLANEJADO
Passo 4.1: Docker Compose
Passo 4.2: CI/CD Pipeline
Passo 4.3: Deploy Backend
Passo 4.4: Deploy Frontend
Passo 4.5: Deploy Mobile
🎬 COMEÇANDO AGORA
Próximas Ações Imediatas (Hoje):
-
Instalar dependências do Backend
cd backend-api npm install @supabase/supabase-js @nestjs/config @nestjs/jwt @nestjs/passport passport passport-jwt dotenv joi -
Criar arquivo
.env.examplecom variáveis necessárias -
Estruturar módulos (auth, users, tasks, common)
-
Começar Passo 1.2 (Módulo de Autenticação)
📝 Notas Importantes
- Git: Fazer commits frequentes após cada passo concluído
- Testing: Adicionar testes conforme avançar
- Documentation: Atualizar este arquivo após cada milestone
- Code Review: Revisar código para padrões NestJS/Next.js
Status: Aguardando execução do Passo 1.1 ⏳