BodySoul / WM Center

BodySoul / WM Center

Smart scheduling for physiotherapy & holistic wellness.

Overview

A web-based appointment and clinical management system built for BodySoul / Windy Mayang (WM) Physiotherapy Center in Kemang, Jakarta. The platform enables patients to book specialized therapy sessions, choose practitioners, and view their treatment schedule, while clinic staff manage therapist availability, room allocations, and patient records.

The Goals

  • Digitize patient reservations with automated conflict detection for therapy slots.
  • Provide an intuitive self-service portal for selecting therapy types and licensed practitioners.
  • Automate appointment reminders and therapist availability scheduling.

The Idea

BodySoul was handling high-demand therapy bookings manually via phone and chat, causing schedule overlaps and missed session reminders. The goal was to build an intuitive online booking workflow for patients and an operational admin dashboard for managing therapist time slots and room capacity.

My Role & Responsibility

Role

Full Stack Engineer

  • Developed the client-facing booking interface in React with dynamic calendar slot selection.
  • Built internal admin dashboard for therapy staff to manage room allocations and therapist rosters.
  • Implemented Express.js backend services with MySQL transactional locking to avoid double-bookings.
  • Configured automated notification service for session confirmations and reminder alerts.

Tech Stack

Screenshots & UI Showcase

6 captured screens from the live production app

Live Captures
Bodysoul Patient & Member Login
View Fullscreen
#01

Bodysoul Patient & Member Login

Secure login portal for patients to view upcoming therapy sessions and check booking history.

Bodysoul Clinic Online Booking
View Fullscreen
#02

Bodysoul Clinic Online Booking

Public booking schedule with interactive calendar, outlet selection, therapist slot availability, and checkout.

Physiotherapy Services & Specialist Catalog
View Fullscreen
#03

Physiotherapy Services & Specialist Catalog

Detailed treatment options, certified physiotherapy team bios, and clinical facilities showcase.

Admin Schedule & Booking Manager
View Fullscreen
#04

Admin Schedule & Booking Manager

Internal dashboard for managing all incoming patient reservations, doctor time slots, and therapy room allocations.

Patient History & Transaction Logs
View Fullscreen
#05

Patient History & Transaction Logs

Record of patient visits, therapy logs, payment receipts, and session package balances.

Clinic Locations & Direct Contact
View Fullscreen
#06

Clinic Locations & Direct Contact

Location map, opening hours, and direct consultation contact channels.

Project Structure

01

Patient Portal (React)

Public-facing React web app where patients browse available therapists, select time slots, book sessions, and view upcoming appointments.

02

Admin Dashboard (React)

Internal React dashboard for clinic staff to manage therapist schedules, view all appointments, handle cancellations/rescheduling, and monitor daily session loads.

03

Backend API (Node.js / Express)

Express REST API handling appointment CRUD operations, availability calculation logic, collision detection for double-booking prevention, and reminder scheduling.

04

Notification Service

Scheduled job service that sends automated WhatsApp and email reminders to patients 24 hours and 1 hour before their appointments.

05

Database (MySQL)

MySQL database storing therapist profiles, appointment records, patient data, and availability slots with transactional integrity to prevent race conditions during booking.

The Process

Workflow Analysis

Mapped outpatient therapy booking stages and identified peak slot reservation patterns.

Schema Design

Structured relational tables for therapist shifts, treatment modalities, and appointment states.

Frontend Implementation

Built the responsive appointment calendar with real-time slot status updates.

Concurrency Testing

Tested high-concurrency booking requests to ensure zero double-booking occurrences.

Key Highlights

  • Self-service online booking with real-time slot availability
  • Automated WhatsApp & email reminders
  • Double-booking prevention with optimistic locking
  • Therapist-specific calendar and schedule management
  • Session history and patient progress tracking

The Result

The system eliminated booking collisions, decreased administrative scheduling overhead by 40%, and provided patients with a seamless online self-service reservation experience.

Challenges & Solutions

Preventing double-bookings under concurrent requests was the primary challenge. We implemented database-level transactions with row locking to ensure that when two patients attempt to book the same slot simultaneously, only one succeeds and the other receives a graceful error and is redirected to the next available slot.

More Projects