Guia para clonar o projeto no GitHub, preparar o ambiente no Windows e terminar o que ainda falta. Pode encaminhar este arquivo para quem for ajudar no desenvolvimento.
Repositório: https://github.com/HenriqueKB/Projeto-extensao-3.git
Branch de trabalho: henrique/psicoagenda-baseline
| Parte | Status |
|---|---|
| Agenda (pacientes, consultas, views diária/semanal/mensal) | Funcionando |
| Login + sessão + alterar senha | Concluído |
| Backup offline + sync manual Cloudflare R2 | Concluído |
| Prontuário evolutivo (evoluções por paciente) | Pendente — sua prioridade |
| Testes automatizados | Opcional, não obrigatório agora |
Detalhes técnicos e checklist: arquivo implementation_plan.md na raiz do projeto.
Backend — em react-app/backend/src/routes/patients.js:
GET /patients/:id/notes— listar notas (ClinicalNote), mais recentes primeiroPOST /patients/:id/notes— criar nota (content, opcionalappointmentId;authorUserId=req.authUser.id)PUT /patients/:id/notes/:noteId— editar conteúdoDELETE /patients/:id/notes/:noteId— excluir nota
O modelo ClinicalNote já existe em react-app/backend/prisma/schema.prisma.
Frontend:
- Funções em
react-app/src/services/api.js:fetchClinicalNotes,createClinicalNote,updateClinicalNote,deleteClinicalNote - Abas em
react-app/src/components/PatientList.js: Histórico de Consultas | Prontuário Evolutivo - Botões para nova evolução, editar e excluir cada nota
Todas as rotas de pacientes já exigem login (token no header Authorization).
Instale nesta ordem:
- Git — https://git-scm.com/download/win
- Node.js LTS (v18 ou v20) — https://nodejs.org/
- No terminal:
node -venpm -vdevem responder com versões.
- No terminal:
- Editor — VS Code ou Cursor (recomendado para o projeto React + Node).
Opcional: conta no GitHub (para clonar e enviar alterações).
Abra PowerShell ou Git Bash e escolha uma pasta (ex.: C:\projetos).
cd C:\projetos
git clone https://github.com/HenriqueKB/Projeto-extensao-3.git
cd Projeto-extensao-3O código atual do PsicoAgenda está na branch henrique/psicoagenda-baseline:
git fetch origin
git checkout henrique/psicoagenda-baselineSe preferir criar sua própria branch a partir dela (recomendado para não sobrescrever o trabalho dos outros):
git checkout -b seu-nome/prontuario-evolutivoExemplo: git checkout -b maria/prontuario-evolutivo
git pull origin henrique/psicoagenda-baselineSe estiver na sua branch:
git pull origin henrique/psicoagenda-baseline
# ou, depois de configurar upstream:
git pullEstrutura importante:
Projeto-extensao-3/
├── react-app/ ← frontend React
│ ├── src/
│ └── package.json
├── react-app/backend/ ← API Node + Prisma + SQLite
│ ├── prisma/
│ ├── src/
│ └── .env.example
└── implementation_plan.md ← plano e status
Backend:
cd react-app\backend
npm install
npx prisma generate
npx prisma db pushFrontend (outro terminal ou depois):
cd react-app
npm installCopie o exemplo e edite:
cd react-app\backend
copy .env.example .envAbra .env e configure pelo menos:
DATABASE_URL="file:./dev.db"
PORT=4000
AUTH_SECRET=uma-chave-longa-e-aleatoria-aquiR2 (Cloudflare) — só necessário se for testar backup na nuvem. Sem essas variáveis, o app ainda roda; o sync R2 pode falhar silenciosamente ou no botão de sync:
R2_ENDPOINT=https://....r2.cloudflarestorage.com/...
R2_ACCESS_KEY_ID=...
R2_SECRET_ACCESS_KEY=...
R2_BUCKET_NAME=...Peça as credenciais R2 a quem mantém o projeto, ou deixe em branco para desenvolver só o prontuário localmente.
Por padrão o React usa http://localhost:4000. Se precisar mudar, crie react-app/.env:
REACT_APP_API_URL=http://localhost:4000Use dois terminais.
Terminal 1 — API:
cd react-app\backend
npm run devDeve aparecer algo como: PsicoAgenda API rodando em http://localhost:4000
Terminal 2 — interface:
cd react-app
npm startO navegador abre em http://localhost:3000.
Se não existir usuário no banco, o servidor cria automaticamente:
| Campo | Valor |
|---|---|
| Usuário | psicologa |
| Senha | senha123 |
Depois você pode usar Alterar senha no header.
- Login com
psicologa/senha123 - Criar paciente/consulta pela agenda
- Baixar Cópia do Banco — download do SQLite
- Sincronizar Cloud R2 — mensagem verde se o
.envR2 estiver correto
git status
git pull origin henrique/psicoagenda-baselineVer o que mudou:
git status
git diffAdicionar e commitar:
git add .
git commit -m "feat: listar e criar notas do prontuario evolutivo"Mensagens úteis: feat: (novidade), fix: (correção), docs: (documentação).
Primeira vez na sua branch:
git push -u origin seu-nome/prontuario-evolutivoDepois:
git push- Acesse https://github.com/HenriqueKB/Projeto-extensao-3
- Aparecerá um banner Compare & pull request após o push, ou vá em Pull requests → New pull request
- Base:
henrique/psicoagenda-baseline← Compare: sua branch - Descreva o que fez e peça review
- Não commite
.env(senhas e chaves) — só.env.example - Não commite
node_modules/nemdev.db(já estão no.gitignore) - Trabalhe em branch própria; evite commit direto na branch dos outros sem combinar
- Se der conflito no
git pull, peça ajuda ou resolva arquivo a arquivo no editor
| Tarefa | Arquivo(s) |
|---|---|
| Rotas de notas clínicas | react-app/backend/src/routes/patients.js |
| Chamadas HTTP do React | react-app/src/services/api.js |
| UI do paciente / abas | react-app/src/components/PatientList.js |
| Autenticação (referência) | react-app/backend/src/routes/auth.js, src/auth.js |
| Schema do banco | react-app/backend/prisma/schema.prisma |
| Plano completo | implementation_plan.md |
Dica: com Cursor/VS Code, abra a pasta Projeto-extensao-3 e use o implementation_plan.md como prompt de contexto para a IA.
| Problema | Solução |
|---|---|
npm não reconhecido |
Reinstale Node.js e reinicie o terminal |
| Erro de porta 4000 em uso | Feche outro npm run dev ou mude PORT no .env |
| 401 em todas as rotas | Faça login de novo; token expira em ~8h |
| Tela em branco no React | Confira se o backend está rodando na porta 4000 |
| Prisma / banco desatualizado | cd react-app\backend → npx prisma db push |
git pull com conflito |
Não apague código às cegas; abra os arquivos marcados com <<<<<<< |
- Backend: 4 rotas de
/patients/:id/notesfuncionando (teste com Postman ou pelo frontend) - Frontend: abas no paciente + criar/editar/excluir evolução
- Login ainda funciona após suas mudanças
-
npm run buildnoreact-appsem erro - Commit + push na sua branch + Pull Request aberto
- Atualizou
implementation_plan.mdmarcando prontuário como concluído (opcional mas ajuda o time)
- Repositório: https://github.com/HenriqueKB/Projeto-extensao-3
- Branch:
henrique/psicoagenda-baseline - Documentação Git (PT): https://git-scm.com/book/pt-br/v2
- Prisma (SQLite): https://www.prisma.io/docs
Qualquer dúvida sobre credenciais R2 ou merge de branch, fale com quem te passou este tutorial.