← Voltar ao índice

🗺️ BWC Roadmap

Tracker central de roadmap e specs de todos os projetos BWC — épicos, features, milestones, atividade GitHub.

URL: roadmap.blackcatcorp.com.br
Frontend: Next.js 14
Banco: PostgreSQL (Prisma)
Porta: 3041
Repo: vituulm/bwc-roadmap
Status: ✅ Rodando
Next.js 14 Prisma PostgreSQL JWT (jose) Tailwind CSS Zod GitHub API react-markdown

Especificação do Produto

Missão

Painel centralizado para gerenciar o roadmap de todos os projetos BWC — épicos, features e tarefas hierárquicas (EPIC → FEATURE → TASK), milestones com datas-alvo, specs em Markdown e sincronização automática de atividade GitHub (commits e PRs).

Usuários-alvo

Equipe interna BlackCat Corp — devs e gestores de produto que precisam de visibilidade unificada sobre todos os projetos ativos.

Infra

Next.js 14 na porta 3041 — Caddy → 172.18.0.1:3041 — roadmap.blackcatcorp.com.br (HTTPS)

Modelos Prisma (7 models)

User, Project, Spec, Milestone, RoadmapItem (hierárquico via parentId), GithubActivity

Enums

ProjectStatus: ACTIVE · PAUSED · DONE · ARCHIVED

ItemType: EPIC · FEATURE · TASK

ItemStatus: PLANNED · IN_PROGRESS · BLOCKED · DONE

Priority: LOW · MEDIUM · HIGH · CRITICAL

Endpoints da API

Autenticação — /api/auth

POST/api/auth/login público
Login com email/senha. Body: { email, password }. Retorna JWT (access + refresh) via cookie HttpOnly.
POST/api/auth/logout público
Invalida sessão limpando os cookies de autenticação.

Projetos — /api/projects

GET/api/projects Requer JWT
Lista todos os projetos ordenados por order, incluindo contagem e status dos roadmap items.
POST/api/projects Requer JWT
Cria novo projeto. Body: { name, slug, description?, status?, repoUrl?, liveUrl?, color?, icon? }
GET/api/projects/:id Requer JWT
Detalhe completo de um projeto: spec em Markdown, milestones, roadmap items e últimas 20 atividades GitHub.
PATCH/api/projects/:id Requer JWT
Atualiza campos do projeto (name, description, status, repoUrl, liveUrl, color, icon) — todos opcionais.

Roadmap Items — /api/roadmap

GET/api/roadmap Requer JWT
Lista items com filtros opcionais: ?projectId=&status=&priority=. Inclui filhos, projeto e milestone associados.
POST/api/roadmap Requer JWT
Cria item hierárquico. Body: { projectId, type, title, status?, priority?, parentId?, milestoneId?, phase?, startDate?, dueDate? }
PATCH/api/roadmap/:id Requer JWT
Atualiza item. Ao setar status: "DONE", registra automaticamente completedAt = now(). Suporta reordenação e mudança de milestone/parent.
DELETE/api/roadmap/:id Requer JWT
Remove item do roadmap (filhos ficam com parentId nulo via SetNull).

Specs — /api/specs

PUT/api/specs Requer JWT
Upsert da spec em Markdown de um projeto. Body: { projectId, content }. Cada atualização incrementa version. Conteúdo renderizado com react-markdown + remark-gfm.

GitHub Sync — /api/sync

POST/api/sync Requer JWT
Dispara sincronização com GitHub API. Body opcional: { projectId? }. Busca últimos commits e PRs dos repos do org vituulm, faz upsert em GithubActivity e retorna atividades salvas. Fallback user → org.
GET/api/sync Requer JWT
Lista atividades GitHub salvas. Query opcional: ?projectId=. Retorna até 50 registros ordenados por timestamp desc, com nome e slug do projeto vinculado.

Variáveis de Ambiente

DATABASE_URLConnection string PostgreSQL (Prisma) JWT_SECRETSegredo para assinar tokens JWT (jose) GITHUB_TOKENPersonal Access Token para GitHub API — necessário para /api/sync

Arquitetura de Deploy

bwc-roadmap.service (systemd user)
  └─ Next.js 14 (porta 3041)
       ↑
  Caddy Reverse Proxy → 172.18.0.1:3041
       ↑
  roadmap.blackcatcorp.com.br (HTTPS — Cloudflare + Let's Encrypt)

Gerado automaticamente — BlackCat Corp • Voltar ao índice