Skip to Content
Back to Projects
0% Double Bookings | Spring Boot

QuickDoc: Healthcare REST API Suite

Developing a robust, secure, and transactional appointment management REST API database for healthcare providers.

Technologies Used

JavaSpring BootMySQLRedisHibernateSwagger

Scope & Context

Founding Engineer project targeting high concurrency, real-time sync, or custom system designs.

Codebase Link

The Problem

Medical practices face constant issues with overlapping doctor schedules, lost slots, and high patient no-show rates. When scheduling software is poorly built, multiple front-office agents can accidentally book different patients into the exact same slot.

Furthermore, developers and testing teams struggle to build integrations when backend API routes are undocumented and lack standardized request validation schemas.

The Solution & Architecture

I engineered a secure, transactional backend scheduling system using Java and Spring Boot:

  • Hibernate Transaction Guard: Wrapped appointment bookings in strict transaction isolation layers, ensuring scheduling conflicts are caught at the database level.
  • Spring Scheduling Cron Tasks: Set up automatic background cron jobs using Java Mail Sender to dispatch appointment confirmation emails to patients 24 hours prior to their slots.
  • Swagger API Docs: Automated documentation generation using Springdoc OpenAPI, creating an interactive test suite for client application developers.

Engineering Deep Dive

Under heavy simulation tests, the system suffered from concurrency write issues (race conditions), where two clients successfully reserved the same slot because they read the slot as "available" before either write had finished.

To solve this without sacrificing system throughput, I implemented Optimistic Locking on the Doctor Schedule entity. By adding a @Version attribute to the database records, Hibernate automatically rejects any write if the version number has changed since it was read.

I configured custom Exception Handlers in Spring Boot to catch ObjectOptimisticLockingFailureException and return a user-friendly error payload, forcing the second client to choose an alternative timing slot gracefully.

Related Reading: For more details on implementing secure authentication layers and access tokens in REST APIs, read my comparison guides: JWT vs Sessions: What I Learned Building Apps and My First OAuth 2.0 Integration: From Zero to Production.

Quantifiable Metrics

1
Achieved 100% schedule reliability, guaranteeing zero overlapping appointments in test runs.
2
Lowered patient no-show rates by an estimated 25% through automated background email reminders.
3
Documented 100% of endpoints in Swagger, allowing clean client integrations.
4
Optimized query performance by mapping relational entities with Lazy Fetch types, avoiding N+1 resource leaks.

Visual Showcase

Screenshots, dashboard metrics, and recorded event videos proving the system running in real-time.

QuickDoc interactive API documentation UI built with Swagger.

QuickDoc interactive API documentation UI built with Swagger.