162 lines
4.5 KiB
Markdown
162 lines
4.5 KiB
Markdown
# PawLink — Registo de Progresso
|
|
|
|
## ⚡ HANDOFF — PRÓXIMA SESSÃO COMEÇA AQUI
|
|
|
|
**Estado:** Projecto Next.js criado, dependências instaladas, ferramentas configuradas e esquema Prisma definido. Parado por falta de base de dados.
|
|
**Próxima tarefa:** Configurar Supabase e obter `DATABASE_URL` para correr migrações e seed.
|
|
**Ficheiro relevante:** `.env.local`
|
|
**Atenção:** O utilizador tem de fornecer a `DATABASE_URL` do Supabase para prosseguir.
|
|
|
|
## Estado Geral
|
|
- **Fase actual:** Fase 1 — MVP
|
|
- **Última actualização:** 2026-05-04 09:49
|
|
- **Sessão #:** 1
|
|
|
|
---
|
|
|
|
## Legenda de Estados
|
|
- ✅ Concluído
|
|
- 🔄 Em progresso
|
|
- ⏳ Por fazer
|
|
- ❌ Bloqueado (indicar motivo)
|
|
- ⚠️ Atenção necessária
|
|
|
|
---
|
|
|
|
## Fase 1 — MVP
|
|
|
|
### Infra-estrutura e Configuração
|
|
- ✅ Setup Next.js 14 + TypeScript + Tailwind + shadcn/ui
|
|
- ✅ Configuração ESLint + Prettier + Husky
|
|
- 🔄 Esquema Prisma criado, falta ligação Supabase
|
|
- ⏳ Migrações iniciais da base de dados
|
|
- ⏳ Seed de dados de desenvolvimento
|
|
- ✅ Configuração variáveis de ambiente (.env.example)
|
|
- ⏳ Deploy inicial Vercel + domínio
|
|
|
|
### Autenticação
|
|
- ⏳ Configuração NextAuth.js
|
|
- ⏳ Registo de utilizador (nome, email, password, birthdate, distrito)
|
|
- ⏳ Validação de +18 anos no servidor
|
|
- ⏳ Verificação de email (Resend)
|
|
- ⏳ Login por email + password
|
|
- ⏳ Recuperação de palavra-passe
|
|
- ⏳ Middleware de protecção de rotas
|
|
- ⏳ Controlo de acesso por roles (USER, SHELTER_ADMIN, ADMIN)
|
|
|
|
### Canis
|
|
- ⏳ Registo de canis (painel admin)
|
|
- ⏳ Perfil público do canil (nome, morada, horários, contacto)
|
|
- ⏳ Painel privado do canil (dashboard base)
|
|
|
|
### Animais
|
|
- ⏳ CRUD de animais (painel do canil)
|
|
- ⏳ Upload de fotos (Supabase Storage)
|
|
- ⏳ Listagem pública com SSR (página inicial)
|
|
- ⏳ Sistema de filtros (distrito, espécie, raça, sexo, esterilizado)
|
|
- ⏳ Ficha detalhada do animal
|
|
- ⏳ Galeria de fotos
|
|
- ⏳ Badge de animal urgente
|
|
- ⏳ Estado do animal (Disponível / Reservado / Adoptado)
|
|
|
|
### Reservas
|
|
- ⏳ Calendário de datas disponíveis
|
|
- ⏳ Criação de reserva (animal → Reservado)
|
|
- ⏳ Email de confirmação (react-email + Resend)
|
|
- ⏳ Histórico de reservas na área de conta
|
|
- ⏳ Confirmação/cancelamento pelo canil
|
|
|
|
### UI / UX
|
|
- ⏳ Layout principal (Header, Footer)
|
|
- ⏳ Menu lateral (3 traços, canto superior direito)
|
|
- ⏳ Modo escuro / claro (toggle + persistência)
|
|
- ⏳ Área de conta (definições, palavra-passe, dados)
|
|
- ⏳ Design responsivo (mobile-first)
|
|
|
|
---
|
|
|
|
## Fase 2 — Doações (Por iniciar)
|
|
|
|
- ⏳ Integração Stripe (PaymentIntent + Payment Element)
|
|
- ⏳ Suporte MBWay
|
|
- ⏳ Fluxo doação monetária
|
|
- ⏳ Webhook Stripe
|
|
- ⏳ Fluxo doação de ração
|
|
- ⏳ Fluxo doação de brinquedos
|
|
- ⏳ Sistema de necessidades dos canis (ShelterNeed)
|
|
- ⏳ Email recibo de doação
|
|
- ⏳ Histórico de doações na conta
|
|
|
|
---
|
|
|
|
## Fase 3 — IA e Comunidade (Por iniciar)
|
|
|
|
- ⏳ Match inteligente (Claude API)
|
|
- ⏳ Chatbot de suporte Paws (streaming)
|
|
- ⏳ Geração automática de descrições de animais
|
|
- ⏳ Perfis pós-adopção
|
|
- ⏳ Sistema de notificações por email
|
|
- ⏳ Destaque de animais urgentes
|
|
- ⏳ Registo de voluntários
|
|
- ⏳ Avaliações de canis
|
|
|
|
---
|
|
|
|
## Fase 4 — Escala (Por iniciar)
|
|
|
|
- ⏳ App móvel React Native
|
|
- ⏳ Relatórios fiscais (IRS)
|
|
- ⏳ Dashboard analítico
|
|
- ⏳ API pública
|
|
- ⏳ Suporte multilingue
|
|
|
|
---
|
|
|
|
## Decisões Técnicas Tomadas
|
|
|
|
| Data | Decisão | Motivo |
|
|
|------|---------|--------|
|
|
| — | — | — |
|
|
|
|
---
|
|
|
|
## Problemas Conhecidos / Bloqueios
|
|
|
|
| # | Descrição | Estado | Sessão detectada |
|
|
|---|-----------|--------|-----------------|
|
|
| — | — | — | — |
|
|
|
|
---
|
|
|
|
## Dependências Externas Configuradas
|
|
|
|
| Serviço | Estado | Notas |
|
|
|---------|--------|-------|
|
|
| Supabase (PostgreSQL) | ⏳ Por configurar | — |
|
|
| Supabase Storage | ⏳ Por configurar | — |
|
|
| Vercel | ⏳ Por configurar | — |
|
|
| Stripe | ⏳ Por configurar | — |
|
|
| Resend | ⏳ Por configurar | — |
|
|
| Anthropic Claude API | ⏳ Por configurar | — |
|
|
| Upstash Redis | ⏳ Por configurar | — |
|
|
| Cloudflare | ⏳ Por configurar | — |
|
|
|
|
---
|
|
|
|
## Histórico de Sessões
|
|
|
|
### Sessão #1 — 2026-05-04
|
|
**Duração:** —
|
|
**Trabalho realizado:**
|
|
- Leitura de toda a documentação
|
|
- Criação de docs/PROGRESS.md
|
|
|
|
**Ficheiros criados/modificados:**
|
|
- docs/PROGRESS.md
|
|
|
|
**Próximos passos para a sessão seguinte:**
|
|
- Iniciar a Fase 1 — Infra-estrutura e Configuração (Setup Next.js, instalar dependências, prisma init, shadcn init)
|
|
|
|
**Notas:**
|
|
- Nenhuma.
|