Product
Clinic Management System
The clinic's schedule, records and payments in one place.
A management system for psychology and health clinics in Brazil. It coordinates professionals, rooms and appointments alongside patient records and payments, within the constraints of the client's shared hosting.
Paid product · contact for access
Available in Brazilian Portuguese. Built for clinic workflows in Brazil.
A schedule shared by people and rooms
An appointment needs both a professional and a room. The shared calendar brings those resources together, with conflict checks when bookings are written. Patient records and payment tracking sit alongside that daily scheduling work.
Delivery context
- Team
- Solo, design to deploy
- Period
- 2026-07 – 2026-10
- Status
- Built for a client; becoming a white-label product
- Stack
- Laravel 12 (PHP 8.3), React, TypeScript, MySQL
Hosting, patient data and scheduling
Shared hosting as a hard constraint
The clinic already had shared cPanel hosting, so production had to fit it: no Docker, Node.js, root access or custom ports. It is a conventional Apache/PHP app, Docker stays in development only, and every release is a validated package (security checks, dependency audit, tests, production smoke test) with a documented rollback.
Patient data encrypted field by field
Identifying patient data is one JSON payload sealed with XChaCha20-Poly1305, bound to the record type, UUID and field, with versioned keys and a rotation command. The CPF stays searchable through a keyed HMAC blind index. Patient searches send names and CPFs in the request body rather than the URL, keeping those search terms out of URL-based access logs. The cost: no free-text search in the database.
Scheduling conflicts checked where they are written
Times travel as UTC ISO 8601 and are shown in America/Bahia. Overlaps use half-open intervals, so back-to-back sessions are allowed, and the check and the write happen in the same transaction, so two people booking the same room at once cannot both succeed.
Inside the shared-hosting deployment
- Laravel 12 API and a React + Vite + TypeScript SPA compiled before release.
- MySQL in production; the MVP ran on SQLite, and backup and restore still support both.
- Development in Docker Compose; production on the shared cPanel hosting the clinic already paid for.
- Google Calendar integration and an MCP server for assisted operation.
Availability and operating limits
- Portuguese only: built around Brazilian law and regulation (health data, LGPD).
- Shared hosting sets the ceiling: no long-running processes or custom services.
- Private repository with client data around it; screenshots will be anonymized.