← Voltar ao índice

BWC To Do List

Gerenciador de tarefas, projetos e compromissos com integração Google Calendar e notificações push via WhatsApp.

URL: bwc.blackcatcorp.com.br
Backend: Node.js + Express
Frontend: React + Vite
Banco: PostgreSQL 16
Porta backend: 4000
Express JWT Auth PostgreSQL Web Push (VAPID) Google Calendar Evolution API (WhatsApp) node-cron React

Especificação do Produto

Missão

Task manager executivo com integração ao Google Calendar e Apple CalDAV, notificações WhatsApp e escalação automática de prioridade.

Usuários-alvo

Victor Martucci e equipe BlackCat

Status

✅ Produção — bwc.blackcatcorp.com.br

Funcionalidades principais
Próximos passos

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ávelDescriçãoObrigatório
DATABASE_URLPostgreSQL connection stringSim
JWT_SECRETSecret para assinar tokens JWTSim
PORTPorta do servidor (padrão: 4000)Não
CORS_ORIGINOrigem permitida pelo CORSNão
GOOGLE_CLIENT_IDOAuth2 Client ID do GoogleCalendar
GOOGLE_CLIENT_SECRETOAuth2 Client Secret do GoogleCalendar
GOOGLE_REDIRECT_URIURI de callback OAuth2Calendar
VAPID_PUBLIC_KEYChave pública VAPID para web pushPush
VAPID_PRIVATE_KEYChave privada VAPIDPush
VAPID_EMAILEmail de contato VAPIDPush
EVOLUTION_API_URLURL base da Evolution APIWhatsApp
EVOLUTION_API_KEYChave de autenticação Evolution APIWhatsApp
EVOLUTION_INSTANCENome da instância WhatsAppWhatsApp
WHATSAPP_NOTIFY_NUMBERNúmero destino das notificaçõesWhatsApp

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