← Voltar ao índice
BWC To Do List
Gerenciador de tarefas, projetos e compromissos com integração Google Calendar e notificações push via WhatsApp.
Express
JWT Auth
PostgreSQL
Web Push (VAPID)
Google Calendar
Evolution API (WhatsApp)
node-cron
React
Especificação do Produto
Task manager executivo com integração ao Google Calendar e Apple CalDAV, notificações WhatsApp e escalação automática de prioridade.
Victor Martucci e equipe BlackCat
✅ Produção — bwc.blackcatcorp.com.br
- Criar/editar tarefas com prioridade P1/P2/P3
- Integração Google Calendar + Apple CalDAV
- Notificação WhatsApp via Evolution API
- Escalação automática P2→P1 para tarefas atrasadas
- Seção "Atrasadas" no Morning Briefing
- Briefing matinal diário às 05:50 BRT
- Dashboard de produtividade com gráficos
- Delegação de tarefas para equipe
- Integração com projetos BlackCat
- Relatório semanal automático
Endpoints da API
Saúde
GET/health
Healthcheck do servidor. Retorna {"status":"ok","timestamp":"..."}
Autenticação — /api/auth
POST/api/auth/register
Registra novo usuário. Body: { name, email, password }
POST/api/auth/login
Login com email/senha. Retorna JWT. Body: { email, password }
PATCH/api/auth/profile
Requer JWT
Atualiza perfil do usuário autenticado.
Projetos — /api/projects
GET/api/projects
Requer JWT
Lista todos os projetos do usuário autenticado.
POST/api/projects
Requer JWT
Cria novo projeto. Body: { name, color, description }
PATCH/api/projects/:id
Requer JWT
Atualiza projeto por ID.
DELETE/api/projects/:id
Requer JWT
Remove projeto por ID.
Tarefas — /api/tasks
GET/api/tasks
Requer JWT
Lista tarefas do usuário. Suporta filtros por projeto, status, data.
POST/api/tasks
Requer JWT
Cria nova tarefa. Body: { title, description, project_id, due_date, priority }
PATCH/api/tasks/:id
Requer JWT
Atualiza tarefa (título, status, data, prioridade).
DELETE/api/tasks/:id
Requer JWT
Remove tarefa por ID.
Compromissos — /api/appointments
GET/api/appointments
Requer JWT
Lista compromissos do usuário.
POST/api/appointments
Requer JWT
Cria novo compromisso. Body: { title, description, start_time, end_time, location }
PATCH/api/appointments/:id
Requer JWT
Atualiza compromisso.
DELETE/api/appointments/:id
Requer JWT
Remove compromisso.
Calendário Google — /api/calendar
GET/api/calendar/google/auth
Requer JWT
Inicia fluxo OAuth2 com Google Calendar.
GET/api/calendar/google/callback
Callback OAuth2 do Google.
POST/api/calendar/google/sync
Requer JWT
Sincroniza eventos do Google Calendar com a agenda local.
GET/api/calendar/google/auth-url
Requer JWT
Retorna URL de autorização OAuth2 para o frontend.
GET/api/calendar/caldav
Requer JWT
Consulta calendário via protocolo CalDAV.
Notificações Push — /api/notifications
GET/api/notifications/status
Requer JWT
Verifica se o usuário tem subscription de push ativa.
POST/api/notifications/subscribe
Requer JWT
Registra subscription VAPID para notificações push.
POST/api/notifications/send
Requer JWT
Envia notificação push manualmente para o usuário.
Briefing WhatsApp
POST/api/briefing/send
Envia briefing diário via WhatsApp usando Evolution API. Disparado por cron job.
Variáveis de Ambiente
| Variável | Descrição | Obrigatório |
| DATABASE_URL | PostgreSQL connection string | Sim |
| JWT_SECRET | Secret para assinar tokens JWT | Sim |
| PORT | Porta do servidor (padrão: 4000) | Não |
| CORS_ORIGIN | Origem permitida pelo CORS | Não |
| GOOGLE_CLIENT_ID | OAuth2 Client ID do Google | Calendar |
| GOOGLE_CLIENT_SECRET | OAuth2 Client Secret do Google | Calendar |
| GOOGLE_REDIRECT_URI | URI de callback OAuth2 | Calendar |
| VAPID_PUBLIC_KEY | Chave pública VAPID para web push | Push |
| VAPID_PRIVATE_KEY | Chave privada VAPID | Push |
| VAPID_EMAIL | Email de contato VAPID | Push |
| EVOLUTION_API_URL | URL base da Evolution API | WhatsApp |
| EVOLUTION_API_KEY | Chave de autenticação Evolution API | WhatsApp |
| EVOLUTION_INSTANCE | Nome da instância WhatsApp | WhatsApp |
| WHATSAPP_NOTIFY_NUMBER | Número destino das notificações | WhatsApp |
Arquitetura Docker
bwc-frontend (nginx:80) ─┐
├─ rede blackcat (Caddy proxy)
bwc-backend (4000) ───────┤
└─ rede bwc-internal
bwc-postgres (5432) ────── rede bwc-internal
Gerado automaticamente — BlackCat Corp • Voltar ao índice