Medical Clinic System.
Healthcare management: patients, scheduling, medical records and finances — all fictitious.
Demos are interactive on desktop — on mobile, see the preview just below.
Navigable demo with fictitious data
Problem
Clinics need to organize scheduling, patients, medical records, finances and inventory with extra care for privacy.
Solution
Dashboard, patients, appointment scheduling, mocked medical records, payments, accounts payable/receivable, inventory, reports and teleconsultation — with 100% fictitious data.
My role
Modeling of the healthcare domain, architecture and development.
Outcome
The first strong administrative system, with attention to privacy and fictitious data.
Demo stack
How it works.
Description of the real product (frontend + backend). The demo embedded above is its demonstration version, with fictitious data.
A management system for a medical clinic that covers the administrative and clinical cycle in one place: patients, appointment scheduling, medical records, payments, finances (accounts payable/receivable and doctor payouts), inventory, campaigns and reports — with role-based access profiles (administration, doctor, reception and finance). A Next.js frontend consumes a Fastify/Prisma API over PostgreSQL, with the healthcare domain modeled end to end. Because this is healthcare, the demo uses 100% fictitious data — no real patient data at all.
Architecture
- Frontend in Next.js (App Router) consuming a REST API in Fastify 5 with Prisma over PostgreSQL.
- Healthcare domain modeled in ~12 relational entities: Patient ↔ Appointment ↔ Payment/Teleconsultation (1:1), Medical Record per patient and Campaign ↔ Patient (N:N), plus Inventory, Accounts payable/receivable and Doctor payout.
- JWT authentication (fastify-jwt) with four access roles — ADMIN, DOCTOR, RECEPTIONIST and FINANCE.
- Business statuses modeled as enums: appointment (scheduled/completed/canceled), payment and payout (pending/paid) and campaign channel (email/SMS/WhatsApp).
- Privacy at the center: because it handles sensitive health data, the demo works only with fictitious data and in read-only mode.
Modules
- Dashboard: clinic indicators and the day's schedule
- Patients: registration, contact and history
- Appointment scheduling: scheduled/completed/canceled status
- Medical records: clinical entries per patient
- Payments: charges per appointment (pending/paid)
- Accounts payable and accounts receivable
- Doctor payouts: closing per doctor and period
- Inventory: items with an alert level for restocking
- Campaigns: email, SMS and WhatsApp with send status
- Teleconsultations: room per appointment (start/end)
- Reports: schedule, patients, billing and NPS
Engineering highlights
- Healthcare domain modeled end to end in Prisma — appointment linked to payment and teleconsultation (1:1) and campaigns linked to patients (N:N).
- Complete clinic finances: payments per appointment, accounts payable/receivable and doctor payouts per period.
- Inventory control with an alert level (alertAt) to flag restocking.
- Multichannel campaigns (email/SMS/WhatsApp) with send status per patient.
- Role-based access control (ADMIN/DOCTOR/RECEPTIONIST/FINANCE) with JWT.
- Explicit concern for privacy: sensitive data treated as fictitious, read-only demo.