- Completed Passo 1.1 (Setup) - 100% - Completed Passo 1.2 (Auth Module) - 100% - Updated ROADMAP_EXECUCAO.md with detailed tasks - Updated PROGRESSO.md with current status - Marked Passo 1.3 (Tasks Module) as next priority - Added versioning strategy (v0.1.0 initial release) - Phase 1 is now 50% complete (2 of 6 passos)
623 lines
15 KiB
Markdown
623 lines
15 KiB
Markdown
# 🚀 ROADMAP DE EXECUÇÃO - TASK MANAGER
|
|
|
|
**Data Início**: 1 de dezembro de 2025
|
|
**Status Atual**: Fase 1 - Backend (50% Completo)
|
|
**Git Repo**: https://git.stackbyte.cloud/erik/todolist-fullstack.git
|
|
|
|
---
|
|
|
|
## 📊 Visão Geral do Progresso
|
|
|
|
```
|
|
Fase 1: Backend [████████████░░░░░░░░░░░░] 50% ✅
|
|
Fase 2: Frontend [░░░░░░░░░░░░░░░░░░░░░░░░] 0%
|
|
Fase 3: Mobile [░░░░░░░░░░░░░░░░░░░░░░░░] 0%
|
|
Fase 4: DevOps/Deploy [░░░░░░░░░░░░░░░░░░░░░░░░] 0%
|
|
|
|
TOTAL GERAL [████░░░░░░░░░░░░░░░░░░░░] 12%
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ COMPLETO: Passo 1.1 & 1.2 (Setup + Auth Module)
|
|
|
|
### Passo 1.1: Setup & Dependências ✅
|
|
- [x] Instalar Supabase SDK
|
|
- [x] Instalar JWT (@nestjs/jwt, @nestjs/passport)
|
|
- [x] Instalar ConfigModule com Joi
|
|
- [x] Criar `.env.example`
|
|
- [x] Estruturar pasta `src/` com módulos
|
|
|
|
**Commit**: `35272b8`
|
|
|
|
### Passo 1.2: Módulo de Autenticação ✅
|
|
- [x] AuthService com signup, login, logout
|
|
- [x] AuthController com endpoints protegidos
|
|
- [x] JWT Strategy com Passport
|
|
- [x] JWT Guard para proteção de rotas
|
|
- [x] CurrentUser Decorator
|
|
- [x] DTOs com validação (SignupDto, LoginDto)
|
|
- [x] Supabase integration
|
|
- [x] Error handling customizado
|
|
|
|
**Endpoints implementados**:
|
|
```
|
|
✅ POST /auth/signup - Registrar usuário
|
|
✅ POST /auth/login - Fazer login
|
|
✅ POST /auth/logout - Fazer logout (protegido)
|
|
✅ GET /auth/me - Perfil atual (protegido)
|
|
✅ POST /auth/forgot-password - Recuperar senha
|
|
```
|
|
|
|
**Commits**: `35272b8`, `b51c598`
|
|
|
|
---
|
|
|
|
## ⏳ EM PROGRESSO: Passo 1.3 (Tasks Module)
|
|
|
|
### Passo 1.3: Módulo de Tarefas
|
|
- [ ] Criar TasksService com CRUD
|
|
- [ ] create(createTaskDto) - Criar tarefa
|
|
- [ ] findAll(userId, filters) - Listar tarefas
|
|
- [ ] findOne(id, userId) - Detalhes tarefa
|
|
- [ ] update(id, updateTaskDto, userId) - Atualizar
|
|
- [ ] remove(id, userId) - Deletar
|
|
|
|
- [ ] Criar TasksController com endpoints
|
|
- [ ] POST /tasks - Criar (protegido)
|
|
- [ ] GET /tasks - Listar (protegido)
|
|
- [ ] GET /tasks/:id - Detalhes (protegido)
|
|
- [ ] PATCH /tasks/:id - Atualizar (protegido)
|
|
- [ ] DELETE /tasks/:id - Deletar (protegido)
|
|
|
|
- [ ] Criar DTOs
|
|
- [ ] CreateTaskDto (title, description)
|
|
- [ ] UpdateTaskDto (title?, description?, completed?)
|
|
|
|
- [ ] Integrar com Supabase
|
|
- [ ] Query builder para tasks
|
|
- [ ] Filtros (completed, sorted)
|
|
|
|
- [ ] Adicionar validações
|
|
- [ ] Título obrigatório
|
|
- [ ] Descrição opcional
|
|
- [ ] Verificar owner da tarefa
|
|
|
|
**Status**: ⏳ Próximo a implementar
|
|
|
|
---
|
|
|
|
## 📋 TODO: Passo 1.4 (RLS no Supabase)
|
|
|
|
### Passo 1.4: Implementar RLS (Row Level Security)
|
|
- [ ] Criar tabela `tasks` no Supabase
|
|
```sql
|
|
CREATE TABLE 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()
|
|
);
|
|
```
|
|
|
|
- [ ] Implementar RLS Policies
|
|
- [ ] Enable RLS
|
|
- [ ] Policy: Users can only access their own tasks
|
|
- [ ] Policy: Users can only update their own tasks
|
|
- [ ] Policy: Users can only delete their own tasks
|
|
|
|
- [ ] Testes de segurança
|
|
- [ ] Usuário A não acessa tarefas de Usuário B
|
|
- [ ] RLS enforced em queries diretas
|
|
|
|
**Status**: ⏳ Aguarda Passo 1.3
|
|
|
|
---
|
|
|
|
## 📖 TODO: Passo 1.5 (Documentação API)
|
|
|
|
### Passo 1.5: Completar Documentação
|
|
- [x] Documentar endpoints de Auth (60%)
|
|
- [x] Signup, Login, Logout, Me, Forgot-password
|
|
|
|
- [ ] Documentar endpoints de Tasks
|
|
- [ ] GET /tasks
|
|
- [ ] POST /tasks
|
|
- [ ] GET /tasks/:id
|
|
- [ ] PATCH /tasks/:id
|
|
- [ ] DELETE /tasks/:id
|
|
- [ ] Query filters
|
|
|
|
- [ ] Adicionar exemplos cURL completos
|
|
|
|
- [ ] Documentar fluxo de Realtime (WebSockets)
|
|
|
|
- [ ] Atualizar arquivo `backend-api/API.md`
|
|
|
|
**Status**: ⏳ Em progresso (Auth 100%, Tasks 0%)
|
|
|
|
---
|
|
|
|
## 🐳 TODO: Passo 1.6 (Dockerfile)
|
|
|
|
### Passo 1.6: Dockerfile Backend
|
|
- [ ] Criar `backend-api/Dockerfile`
|
|
- [ ] Multi-stage build
|
|
- [ ] Production-ready
|
|
- [ ] Otimizado para tamanho
|
|
|
|
- [ ] Testar build local
|
|
```bash
|
|
docker build -t task-manager-backend .
|
|
docker run -p 3000:3000 task-manager-backend
|
|
```
|
|
|
|
- [ ] Adicionar docker-compose (opcional)
|
|
|
|
**Status**: ⏳ Aguarda Passo 1.4
|
|
|
|
---
|
|
|
|
## 📊 FASE 1 RESUMO
|
|
|
|
| Passo | Nome | Status | Prioridade |
|
|
|-------|------|--------|-----------|
|
|
| 1.1 | Setup & Dependências | ✅ 100% | P0 |
|
|
| 1.2 | Módulo Auth | ✅ 100% | P0 |
|
|
| 1.3 | Módulo Tasks | ⏳ 0% | P0 |
|
|
| 1.4 | RLS Supabase | ⏳ 0% | P1 |
|
|
| 1.5 | API Docs | 🟡 60% | P2 |
|
|
| 1.6 | Dockerfile | ⏳ 0% | P2 |
|
|
|
|
**Total Fase 1**: 33% (2/6 passos)
|
|
|
|
---
|
|
|
|
## 🎯 FASE 2: FRONTEND (Next.js) - PLANEJADO
|
|
|
|
### Passo 2.1: Setup & Dependências
|
|
- [ ] Instalar Supabase Client
|
|
- [ ] Instalar lucide-react (ícones)
|
|
- [ ] Configurar Google Fonts
|
|
- [ ] Estruturar pasta `src/components/`
|
|
|
|
### Passo 2.2: Configurar Design System
|
|
- [ ] Tailwind com tokens do Design System
|
|
- [ ] Cores, tipografia, espaçamento
|
|
- [ ] Componentes base (Button, Input, Card)
|
|
|
|
### Passo 2.3: Componentes UI
|
|
- [ ] Button (Primary, Secondary, Tertiary, Danger)
|
|
- [ ] Input com validação
|
|
- [ ] Card
|
|
- [ ] Modal
|
|
- [ ] Checkbox
|
|
- [ ] TaskItem
|
|
|
|
### Passo 2.4: Autenticação (Frontend)
|
|
- [ ] Login page
|
|
- [ ] Signup page
|
|
- [ ] Forgot password page
|
|
- [ ] Login/Signup forms
|
|
- [ ] Proteção de rotas
|
|
|
|
### Passo 2.5: Dashboard de Tarefas
|
|
- [ ] Task list
|
|
- [ ] Task form (criar/editar)
|
|
- [ ] Task filters (Todas/Ativas/Concluídas)
|
|
- [ ] Empty state
|
|
- [ ] Loading state
|
|
|
|
### Passo 2.6: Realtime Sync
|
|
- [ ] Supabase Realtime subscriptions
|
|
- [ ] Auto-atualizar lista de tarefas
|
|
|
|
### Passo 2.7: Responsividade
|
|
- [ ] Mobile first
|
|
- [ ] Tailwind breakpoints
|
|
|
|
### Passo 2.8: Dockerfile Frontend
|
|
- [ ] Multi-stage build
|
|
- [ ] Production-ready
|
|
|
|
**Status**: ⏳ Ainda não iniciado
|
|
|
|
---
|
|
|
|
## 🚀 FASE 3: MOBILE (Flutter) - PLANEJADO
|
|
|
|
### Passo 3.1: Criar Projeto Flutter
|
|
- [ ] `flutter create mobile`
|
|
- [ ] Estruturar pastas
|
|
|
|
### Passo 3.2: Design System Flutter
|
|
- [ ] Theme com cores do Design System
|
|
- [ ] Google Fonts integration
|
|
- [ ] Componentes customizados
|
|
|
|
### Passo 3.3: Autenticação (Flutter)
|
|
- [ ] Login screen
|
|
- [ ] Signup screen
|
|
- [ ] Supabase auth integration
|
|
|
|
### Passo 3.4: Telas de Tarefas
|
|
- [ ] Tasks list screen
|
|
- [ ] Task detail screen
|
|
- [ ] Create/edit task screen
|
|
- [ ] Filters
|
|
|
|
### Passo 3.5: State Management
|
|
- [ ] Provider setup
|
|
- [ ] Auth provider
|
|
- [ ] Tasks provider
|
|
|
|
### Passo 3.6: Realtime Sync (Flutter)
|
|
- [ ] Supabase Realtime subscription
|
|
- [ ] Auto-update tasks
|
|
|
|
### Passo 3.7: Build
|
|
- [ ] Android APK
|
|
- [ ] iOS app
|
|
|
|
**Status**: ⏳ Ainda não iniciado
|
|
|
|
---
|
|
|
|
## 🐳 FASE 4: DEVOPS & DEPLOY - PLANEJADO
|
|
|
|
### Passo 4.1: Docker Compose
|
|
- [ ] docker-compose.yml
|
|
- [ ] Orquestração local
|
|
- [ ] Volumes para dados
|
|
|
|
### Passo 4.2: CI/CD
|
|
- [ ] GitHub Actions (ou GitLab CI)
|
|
- [ ] Lint & test
|
|
- [ ] Build stages
|
|
|
|
### Passo 4.3: Deploy Backend
|
|
- [ ] Railway ou Render
|
|
- [ ] Variáveis de ambiente
|
|
- [ ] Database migrations
|
|
|
|
### Passo 4.4: Deploy Frontend
|
|
- [ ] Vercel
|
|
- [ ] Environment variables
|
|
- [ ] Custom domain (opcional)
|
|
|
|
### Passo 4.5: Deploy Mobile
|
|
- [ ] Google Play Store
|
|
- [ ] Apple App Store
|
|
|
|
**Status**: ⏳ Ainda não iniciado
|
|
|
|
---
|
|
|
|
## 📈 Cronograma Sugerido
|
|
|
|
| Período | O que fazer |
|
|
|---------|-----------|
|
|
| Hoje (1º Dez) | ✅ Passo 1.1 + 1.2 concluídos |
|
|
| Próximas horas | Passo 1.3 (Tasks Module) |
|
|
| Próximo dia | Passo 1.4 (RLS) + 1.5 (Docs) |
|
|
| Próximos dias | Passo 1.6 (Dockerfile) |
|
|
| Semana próxima | Fase 2 (Frontend) |
|
|
| 2-3 semanas | Fase 3 (Mobile) |
|
|
| 4+ semanas | Fase 4 (Deploy) |
|
|
|
|
---
|
|
|
|
## 🔄 Git Workflow
|
|
|
|
**Branch Strategy:**
|
|
```
|
|
main (production)
|
|
↑
|
|
dev (desenvolvimento)
|
|
↑
|
|
├─ feature/tasks-module (Passo 1.3)
|
|
├─ feature/frontend-auth (Passo 2.4)
|
|
└─ feature/flutter-setup (Passo 3.1)
|
|
```
|
|
|
|
**Versioning:**
|
|
- v0.1.0 ✅ (Initial: Auth + Design System)
|
|
- v0.2.0 (Tasks Module + RLS)
|
|
- v0.3.0 (Frontend Core)
|
|
- v0.4.0 (Mobile Core)
|
|
- v1.0.0 (Production Ready)
|
|
|
|
---
|
|
|
|
## 📚 Arquivos Documentação
|
|
|
|
- **[SESSION_1_RECAP.md](./SESSION_1_RECAP.md)** - Recap da sessão 1
|
|
- **[PROGRESSO.md](./PROGRESSO.md)** - Status detalhado
|
|
- **[GIT_PUSH_INSTRUCTIONS.md](./GIT_PUSH_INSTRUCTIONS.md)** - Como fazer push
|
|
- **[ROADMAP_EXECUCAO.md](./ROADMAP_EXECUCAO.md)** - Este arquivo
|
|
- **[../API.md](../../backend-api/API.md)** - Documentação API
|
|
|
|
---
|
|
|
|
## 🎯 Próximas Ações Imediatas
|
|
|
|
1. **Passo 1.3 - Tasks Module**
|
|
- [ ] Implementar TasksService (CRUD)
|
|
- [ ] Implementar TasksController (endpoints)
|
|
- [ ] Criar DTOs (CreateTaskDto, UpdateTaskDto)
|
|
- [ ] Integrar com Supabase
|
|
|
|
2. **Testes**
|
|
- [ ] Compilar com `npm run build`
|
|
- [ ] Testar endpoints com cURL
|
|
|
|
3. **Commit & Push**
|
|
- [ ] Commit: `feat(tasks): implement CRUD with Supabase`
|
|
- [ ] Push para origin/main
|
|
|
|
---
|
|
|
|
**Status Final**: Backend 50% concluído. Próximo: Tasks Module! 🚀
|
|
|
|
|
|
---
|
|
|
|
## 🎯 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**:
|
|
```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.example`
|
|
- `backend-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ário
|
|
- `POST /auth/login` - Login
|
|
- `POST /auth/logout` - Logout
|
|
- `GET /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ário
|
|
- `GET /tasks/:id` - Detalhes da tarefa
|
|
- `POST /tasks` - Criar tarefa
|
|
- `PATCH /tasks/:id` - Atualizar tarefa
|
|
- `DELETE /tasks/:id` - Deletar tarefa
|
|
|
|
---
|
|
|
|
### Passo 1.4: Implementar RLS (Supabase) 🔒
|
|
**Objetivo**: Configurar Row Level Security no banco
|
|
|
|
**SQL a executar**:
|
|
```sql
|
|
-- 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`
|
|
```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.tsx`
|
|
- `Modal.tsx`
|
|
- `Checkbox.tsx`
|
|
- `TaskItem.tsx`
|
|
|
|
---
|
|
|
|
### Passo 2.2: Autenticação (Frontend) 🔐
|
|
**Objetivo**: Integrar login/signup com Supabase
|
|
|
|
**Páginas a criar**:
|
|
- `app/(auth)/login/page.tsx`
|
|
- `app/(auth)/signup/page.tsx`
|
|
- `app/(auth)/forgot-password/page.tsx`
|
|
|
|
**Componentes**:
|
|
- `LoginForm.tsx`
|
|
- `SignupForm.tsx`
|
|
|
|
---
|
|
|
|
### Passo 2.3: Dashboard de Tarefas 📋
|
|
**Objetivo**: Interface de CRUD de tarefas
|
|
|
|
**Páginas a criar**:
|
|
- `app/(dashboard)/tasks/page.tsx`
|
|
|
|
**Componentes**:
|
|
- `TaskList.tsx`
|
|
- `TaskForm.tsx`
|
|
- `TaskFilters.tsx`
|
|
- `EmptyState.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):
|
|
|
|
1. **Instalar dependências do Backend**
|
|
```bash
|
|
cd backend-api
|
|
npm install @supabase/supabase-js @nestjs/config @nestjs/jwt @nestjs/passport passport passport-jwt dotenv joi
|
|
```
|
|
|
|
2. **Criar arquivo `.env.example`** com variáveis necessárias
|
|
|
|
3. **Estruturar módulos** (auth, users, tasks, common)
|
|
|
|
4. **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 ⏳
|