O FisioTrack é um sistema de gestão de prontuários para uma clínica de fisioterapia. Uma instalação central mantém o banco SQLCipher criptografado e atende, pela rede local, os computadores autorizados da equipe.
- Cadastro, busca, ordenação, favoritos e prontuário completo de pacientes.
- Avaliações clínicas, importação e exportação JSON/PDF.
- Agenda com detecção de conflitos, notas e histórico de sessões por paciente.
- Auditoria das alterações e expiração de sessões por inatividade.
- Backup local criptografado e integração opcional com Google Drive.
- Interface responsiva para computadores, tablets e celulares da rede interna.
O backend C++ serve a API e o build React no mesmo endereço. Todos os postos acessam um único processo e um único banco em database/patients.db; as operações da API são serializadas para manter transações consistentes entre acessos simultâneos.
computadores da equipe ── rede local ── servidor FisioTrack :8080 ── SQLCipher
O sistema opera exclusivamente na rede local. Não encaminhe a porta 8080 no roteador. No firewall do computador servidor, permita essa porta somente para a sub-rede da clínica.
- CMake 3.20+, compilador C++20, OpenSSL e SQLCipher.
- Node.js 24 LTS e npm.
- Python 3 e as dependências de
requirements.txtapenas para Google Drive.
No Arch Linux:
sudo pacman -S --needed base-devel cmake openssl sqlcipher nodejs npm pythonNo Ubuntu/Debian:
sudo apt install build-essential cmake libssl-dev libsqlcipher-dev nodejs npm python3-
Copie a configuração e revise os caminhos:
cp .env.example .env
-
Compile e inicie:
./runlan.sh build
-
Descubra o endereço IP do computador servidor e acesse, nos demais computadores:
http://IP-DO-SERVIDOR:8080
Depois do primeiro build, ./runlan.sh start inicia sem recompilar. A primeira abertura solicita a criação da senha mestre; as demais solicitam apenas essa senha.
Docker é uma alternativa ao modo nativo e mantém frontend, API, SQLCipher e uploader do Google Drive no mesmo container. Para construir e iniciar:
docker compose up --detach --buildPara incluir a credencial OAuth do Google Drive:
docker compose -f compose.yaml -f compose.google-drive.yaml up --detach --buildNão execute runlan.sh e Docker simultaneamente sobre o mesmo banco. Consulte docs/DOCKER.md para configuração da LAN, migração, atualização, backup e restauração do volume.
Se database/patients.db ainda não existir, a inicialização procura um único arquivo .db sob database/, ignorando backups. Quando encontra exatamente um, copia o banco e seus arquivos WAL/SHM para o local principal e preserva a origem.
Se houver mais de um candidato, o servidor não inicia. Escolha explicitamente a origem no .env:
DB_MIGRATION_SOURCE=database/importacao/patients.dbMantenha o sistema anterior desligado durante a cópia e valide pacientes, agenda e histórico antes de remover qualquer arquivo antigo.
Os backups locais ficam em database/backups/ e continuam criptografados. Para ativar o Google Drive:
- Execute
./setup_backup.sh. - Coloque credenciais OAuth do tipo aplicativo para computador em
config/client_secrets.json. - No navegador do próprio computador servidor, abra
http://127.0.0.1:8080, entre no FisioTrack e vincule o Google Drive em Ajustes.
A integração com o Google Drive realiza somente conexões de saída; ela não publica o FisioTrack na internet.
Menu de desenvolvimento:
./rundev.shExecução direta dos validadores:
cmake -S backend -B backend/build
cmake --build backend/build -j"$(nproc)"
./backend/build/unit_tests
cd frontend
CI=true npm test -- --watchAll=false
npm run buildbackend/: API, persistência SQLCipher, autenticação, agenda e testes C++.frontend/: aplicação React/TypeScript e testes de interface.scripts/: integração opcional de backup.docs/: contratos da API, banco e formato de importação.database/: banco e backups locais, ignorados pelo Git.
Os segredos e dados clínicos devem permanecer apenas nos arquivos ignorados .env, config/ e database/.
