35272b8f87aa32367c14b6a0b27be6dd933989cf
- Setup NestJS with TypeScript, ConfigModule, JWT authentication - Implemented Auth Module with signup, login, logout endpoints - Created DTOs with validation (SignupDto, LoginDto) - JWT Strategy with Passport integration for token validation - JwtAuthGuard for route protection with Bearer tokens - CurrentUser decorator for dependency injection - Supabase integration for user management and auth - Complete API documentation (API.md) with all endpoints - Design System for Web (Next.js + Tailwind) and Mobile (Flutter) - Comprehensive project documentation and roadmap - Environment configuration with Joi schema validation - Ready for Tasks Module and RLS implementation
📱 TASK MANAGER - Aplicação Multi-Plataforma
Uma aplicação fullstack moderna de gerenciamento de tarefas com sincronização em tempo real, desenvolvida com NestJS, Next.js, Flutter e Supabase.
🎯 Objetivo
Criar uma aplicação multi-plataforma sincronizada em tempo real para estudar desenvolvimento fullstack moderno com TypeScript.
🛠️ Stack Tecnológica
Backend
- NestJS 11 - Framework Node.js com TypeScript
- Supabase - PostgreSQL + Auth + Realtime
- TypeScript 5.7
- Docker - Containerização
Frontend Web
- Next.js 16 - React com App Router
- TailwindCSS 4 - Utility-first CSS
- TypeScript 5
- Supabase Client
Mobile
- Flutter - Framework multi-plataforma (Android/iOS)
- Dart - Linguagem do Flutter
- Provider - State management
- Supabase Flutter SDK
📋 Funcionalidades (MVP)
✅ Autenticação
- Estrutura de autenticação
- Cadastro de usuário (email + senha)
- Login
- Logout
- Recuperação de senha
- Sessão persistente
✅ Gerenciamento de Tarefas
- Criar tarefa
- Listar tarefas do usuário
- Marcar como concluída/pendente
- Editar tarefa
- Deletar tarefa
- Filtrar (Todas/Ativas/Concluídas)
✅ Sincronização em Tempo Real
- Supabase Realtime (WebSockets)
- Sincronização web ↔ mobile
- Atualização automática em múltiplos dispositivos
📁 Estrutura do Projeto
to-do-list/
├── backend-api/ # NestJS API
│ ├── src/
│ │ ├── auth/ # Módulo de autenticação
│ │ ├── tasks/ # Módulo de tarefas
│ │ ├── config/ # Configurações
│ │ ├── common/ # Utilitários comuns
│ │ └── main.ts
│ ├── .env.example
│ └── package.json
│
├── frontend-next/ # Next.js Web
│ ├── src/
│ │ ├── app/ # App Router pages
│ │ ├── components/ # Componentes reutilizáveis
│ │ ├── lib/ # Utilitários
│ │ └── styles/ # Estilos globais
│ ├── .env.example
│ └── package.json
│
├── mobile/ # Flutter (TODO)
│ ├── lib/
│ ├── pubspec.yaml
│ └── .env.example
│
├── docs/ # Documentação
│ ├── instrucoes-gerais.md
│ └── instrucoes-design.md
│
├── ROADMAP_EXECUCAO.md # Roadmap detalhado
├── .gitignore
└── README.md # Este arquivo
🚀 Começando
Pré-requisitos
- Node.js 20+
- npm ou yarn
- Conta Supabase ativa
- Flutter SDK (para mobile)
Setup Backend
cd backend-api
npm install
cp .env.example .env
# Preencha as variáveis de ambiente
npm run start:dev
Backend rodará em: http://localhost:3000/api
Setup Frontend Web
cd frontend-next
npm install
cp .env.example .env.local
# Preencha as variáveis de ambiente
npm run dev
Frontend rodará em: http://localhost:3000
Setup Mobile (Em Breve)
cd mobile
flutter pub get
# Configurar .env
flutter run
📖 Documentação
Veja os arquivos de documentação:
- instrucoes-gerais.md - Plano geral do projeto
- instrucoes-design.md - Design System
- ROADMAP_EXECUCAO.md - Roadmap detalhado
🔐 Variáveis de Ambiente
Backend (.env)
SUPABASE_URL=https://supabase.stackbackup.cloud
SUPABASE_ANON_KEY=your_key
SUPABASE_SERVICE_KEY=your_key
JWT_SECRET=your_secret_min_32_chars
JWT_EXPIRATION=7d
NODE_ENV=development
PORT=3000
CORS_ORIGIN=http://localhost:3000
Frontend (.env.local)
NEXT_PUBLIC_SUPABASE_URL=https://supabase.stackbackup.cloud
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_key
📊 Progresso
Fase 1: Backend [████████░░] 45%
✅ Setup & Config
✅ Módulo Auth
⏳ Módulo Tasks
⏳ RLS & Docs
Fase 2: Frontend [██░░░░░░░░] 5%
⏳ Setup & Config
⏳ Componentes
⏳ Autenticação
⏳ Tarefas
Fase 3: Mobile [░░░░░░░░░░] 0%
⏳ Projeto Flutter
⏳ Auth
⏳ Telas
Fase 4: DevOps [░░░░░░░░░░] 0%
⏳ Docker
⏳ Deploy
🔗 Referências
- NestJS Documentation
- Next.js Documentation
- Flutter Documentation
- Supabase Documentation
- TypeScript Handbook
📝 API Endpoints
Auth
POST /api/auth/signup- Registrar usuárioPOST /api/auth/login- Fazer loginPOST /api/auth/logout- Fazer logoutGET /api/auth/me- Perfil atualPOST /api/auth/forgot-password- Recuperar senha
Tasks (Em desenvolvimento)
GET /api/tasks- Listar tarefasPOST /api/tasks- Criar tarefaPATCH /api/tasks/:id- Atualizar tarefaDELETE /api/tasks/:id- Deletar tarefa
🤝 Contribuindo
Este é um projeto de aprendizado. Sinta-se livre para abrir issues e PRs.
📄 Licença
MIT
Desenvolvido com ❤️ como projeto de aprendizado fullstack
Description
Languages
TypeScript
85.3%
PLpgSQL
9.4%
Dockerfile
2.9%
JavaScript
1.8%
CSS
0.6%