Full-Stack Application / Product Engineering
Medical Appointment Management System
A React + TypeScript product with an Express backend, built around an interactive weekly scheduler for appointments and patients, in English and Macedonian.
01 Overview
A React + TypeScript product with an Express backend, built around an interactive weekly scheduler for appointments and patients, in English and Macedonian.
02 Why I built it
Small medical practices need to schedule patients without double-booking, stay in sync with the calendars they already use, and keep working when the network doesn't.
03 Architecture
Patient ↓ Appointment (react-hook-form + Zod) ↓ Weekly scheduler (drag & drop, conflict checks) ↓ Express API ──► Google Calendar ↓ (offline) localStorage fallback
04 Technical Highlights
- →Drag-and-drop weekly scheduler with custom event rendering
- →Strict TypeScript with Zod-inferred domain types
- →Graceful degradation to localStorage when the API is unavailable
- →Typed English / Macedonian translations with locale-aware dates
- →Google Calendar integration via googleapis
05 Quality / Testing
Runtime validation at the form and data boundaries, plus logic isolated in hooks so it can be tested independently of the UI.
06 Engineering Decisions
Feature-based components with business logic isolated in custom hooks. Domain models for appointments, patients and settings, validated at runtime with Zod. API-first data layer that degrades gracefully to localStorage.
07 Lessons Learned
Building the product end to end sharpens the instinct for where it will break: validation edges, sync conflicts and offline states are exactly where tests matter most.