BedFlow is a clinical operations support platform designed from a Nurse perspective to improve:
- bed management
- structured shift handover
- ambulatory & multi-service coordination
- auditability and operational traceability
Disclaimer: BedFlow is a concept/demo project. Do not use with real patient-identifiable data (PHI) without proper security, compliance, and governance review.
Clica no botão acima para ver o vídeo de demonstração do BedFlow
- Bed management (visibility, allocation, patient flow support)
- Clinical handover (structured updates, continuity between shifts)
- Surgical / procedure planning (operational alignment with capacity)
- Role-based access control (RBAC): Nurse / Coordinator / Admin
- Audit trail & exports (supporting governance and reporting)
- Frontend: React (Vite)
- Backend: NestJS
- Database (default): SQLite via Prisma
- Optional DB: PostgreSQL (via Docker Compose)
- ORM: Prisma
- Node.js (LTS recommended)
- npm
- (Optional) Docker + Docker Compose (only if you want PostgreSQL)
From the repo root:
chmod +x start.sh
./start.shWhat this script does:
- installs dependencies for
server/andclient/ - runs
prisma:pushandprisma:seedon the backend - starts backend at http://localhost:1893
- starts frontend (Vite dev server) and keeps both running
BedFlow uses environment variables (standard Node/Nest + Prisma). In development, you may already have a server/.env.
Typical variables:
DATABASE_URL- SQLite (default):
file:./prisma/bedflow.db - PostgreSQL:
postgresql://user:pass@host:5432/db?schema=public
- SQLite (default):
JWT_SECRET(required)JWT_EXPIRES(optional, e.g.,2h)CORS_ORIGIN(recommended in production)PORT(default used by the project:1893)
For production, this repository provides a deployment guide that does not require
.envfiles (uses systemd Environment values instead).
If you want PostgreSQL (instead of SQLite), start the DB with Docker Compose.
No .env file required — pass variables from your shell:
export POSTGRES_USER=bedflow_admin
export POSTGRES_PASSWORD='CHANGE_ME_STRONG_PASSWORD'
export POSTGRES_DB=bedflow_prod
docker compose up -dThen point your backend DATABASE_URL to Postgres (see DEPLOY.md).
- Never expose a database port publicly.
- Use a strong
JWT_SECRET(generate withopenssl rand -hex 32). - Restrict CORS to your frontend domain.
- Remove demo credentials for any real deployment.
MIT
O BedFlow é uma plataforma de suporte à operação clínica (Clinical Operations), concebida do ponto de vista de um Enfermeiro, para melhorar:
- gestão de camas
- passagem de turno estruturada
- coordenação em ambulatório e multi-serviços
- auditoria e rastreabilidade operacional
Aviso: o BedFlow é um projeto conceptual/demonstração. Não deve ser usado com dados reais identificáveis (PHI) sem revisão de segurança, conformidade e governação.
- Gestão de camas (visibilidade, alocação, apoio ao fluxo do doente)
- Passagem de turno (atualizações estruturadas, continuidade entre equipas)
- Planeamento cirúrgico/procedimentos (alinhamento operacional com capacidade)
- Controlo de acessos por perfis (RBAC): Enfermeiro / Coordenador / Admin
- Auditoria e exportações (suporte à governação e reporting)
- Frontend: React (Vite)
- Backend: NestJS
- Base de dados (por defeito): SQLite via Prisma
- BD opcional: PostgreSQL (via Docker Compose)
- ORM: Prisma
- Node.js (recomendado LTS)
- npm
- (Opcional) Docker + Docker Compose (apenas se quiseres PostgreSQL)
Na raiz do repositório:
chmod +x start.sh
./start.shO que este script faz:
- instala dependências em
server/eclient/ - executa
prisma:pusheprisma:seedno backend - inicia o backend em http://localhost:1893
- inicia o frontend (Vite dev server) e mantém ambos ativos
O BedFlow usa variáveis de ambiente (Node/Nest + Prisma). Em desenvolvimento, podes já ter um server/.env.
Variáveis típicas:
DATABASE_URL- SQLite (por defeito):
file:./prisma/bedflow.db - PostgreSQL:
postgresql://user:pass@host:5432/db?schema=public
- SQLite (por defeito):
JWT_SECRET(obrigatório)JWT_EXPIRES(opcional, ex.:2h)CORS_ORIGIN(recomendado em produção)PORT(por defeito usado no projeto:1893)
Para produção, existe um guia de deploy que não obriga a usar ficheiros
.env(usa variáveis no systemd).
Se quiseres PostgreSQL (em vez de SQLite), inicia a BD via Docker Compose.
Não precisas de .env — passa as variáveis no terminal:
export POSTGRES_USER=bedflow_admin
export POSTGRES_PASSWORD='ALTERAR_PARA_PASSWORD_FORTE'
export POSTGRES_DB=bedflow_prod
docker compose up -dDepois aponta o DATABASE_URL do backend para Postgres (ver DEPLOY.md).
- Nunca expor a porta da base de dados publicamente.
- Usar
JWT_SECRETforte (gera comopenssl rand -hex 32). - Restringir CORS ao domínio do frontend.
- Remover credenciais de demo em qualquer uso real.
MIT
