Agenda, prontuário protegido, financeiro e portal do paciente em uma plataforma segura, feita para a prática clínica.
Translation pending
HealthTypeScript · PLpgSQLGitHub @carlospaulischenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Sistema de gestão para psicólogos e clínicas: agenda, pacientes, prontuário, financeiro, documentos, cobranças e nota fiscal — com controle de acesso e rastreabilidade por construção.
Stack: Next.js 16 (Vercel) · Supabase (Postgres + Auth + Storage + Edge Functions + pg_cron, região sa-east-1) · TypeScript · Tailwind v4.
| Doc | Conteúdo |
|---|---|
docs/prd.md | Escopo do MVP, módulos, roadmap, o que fica de fora |
docs/compliance-matrix.md | Regras éticas CFP/LGPD → comportamento do sistema |
docs/permissions-matrix.md | Perfis × telas × ações, critérios de aceite |
As matrizes são a especificação viva do produto — alterações nelas exigem revisão antes do código.
npm install
cp .env.example .env.local # preencher chaves
npx supabase start # sobe Postgres/Auth local (requer Docker)
npx supabase db reset # aplica migrations + seed
npm run dev
Depois de criar o primeiro usuário no Auth (Dashboard → Authentication), vincule-o a um perfil:
insert into profiles (id, organization_id, role, status, full_name)
values ('<auth_user_id>', '00000000-0000-0000-0000-000000000001',
'clinic_admin', 'active', 'Seu Nome');
src/
├── proxy.ts # Next 16: sessão + gate de autenticação (ex-middleware)
├── app/
│ ├── (auth)/login # login staff
│ ├── (app)/ # área interna: dashboard, agenda, pacientes, financeiro...
│ ├── (portal)/portal # portal do paciente (sem dados clínicos)
│ └── auth/callback # magic link / convites
├── lib/supabase/ # client (browser) · server · admin (service role)
├── lib/auth.ts # getSessionProfile / requireStaff
└── lib/audit.ts # log_audit (trilha ET-017)
supabase/
├── migrations/ # schema + RLS + funções de domínio
├── functions/ # edge functions: send-message, payment-webhook, issue-invoice
└── seed.sql
clinical_records, record_entries, documents — o acesso é negado pelo Postgres, não por esconder botão. Vínculo ativo patient_links é a base do ABAC clínico.record_entry_versions; edição = nova versão via add_entry_version() (exige change_reason). UPDATE/DELETE revogados + trigger de imutabilidade.audit_logs append-only para todas as ações sensíveis.pg_cron + edge functions), não em Vercel Cron — funciona em qualquer plano e sem limite de timeout curto.Este sistema manipula dados pessoais sensíveis (LGPD art. 11 — saúde). Antes de produção: revisão jurídica/ética das matrizes, DPA com Supabase/provedores, projeto Supabase em sa-east-1, backups/PITR habilitados.