Skip to content
All work

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.

ReactTypeScriptViteTailwind CSSshadcn/uiZodreact-hook-formdate-fnsExpressGoogle Calendar API
Mon
Checkup
Tue
Consult
Follow-up
Wed
Lab
Thu
Surgery prep
Fri
Checkup
Review

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.

08 Links