Skip to content

Web Application

CABA Clinic Appointment Platform

A bilingual, role-based clinic appointment platform connecting patient booking, doctor availability, and receptionist administration in one custom web application.
CABA clinic appointment platform showing doctor discovery, appointment booking, availability, and administration interfaces

Project Overview

Client
Academic Project
Year
2023
Project status
Academic Case Study
Industry
Healthcare

Services

  • Web Development
  • Web UI/UX Design

Technologies

  • PHP
  • JavaScript
  • MySQL

CABA is a custom bilingual clinic appointment platform built around the complete workflow rather than a single booking form. Patients discover doctors and request appointments, doctors publish availability and respond to requests, and receptionists manage the operational and public-facing parts of the application.

The project was implemented with PHP, Twig, MySQL, JavaScript, jQuery, AJAX, Bootstrap, and Sass. Its codebase includes role-based authentication, working-day capacity, appointment states, notifications, reusable templates, and editable content and configuration.

CABA was completed as an academic project in 2023. It is presented as a working application and engineering case study, not as a production medical system or evidence of clinical outcomes.

The Challenge

A clinic appointment is not one isolated form submission. The system must coordinate doctor availability, morning and evening periods, capacity limits, appointment types, confirmation decisions, notes, results, cancellations, and role-specific permissions.

The same application also had to remain understandable for three very different users. Patients need a simple booking journey, doctors need schedule and consultation controls, and receptionists need broad administrative access without exposing those controls to everyone.

The challenge was to model these rules clearly while keeping the interface responsive, bilingual, and manageable as the amount of clinic content and operational data grows.

Goals

  • Patient journey. Let patients discover doctors, review profiles and availability, request new or follow-up appointments, and manage active bookings.
  • Doctor workflow. Let doctors maintain profiles, define morning and evening capacity, accept or decline requests, add notes, and record visit results.
  • Receptionist control. Provide administration for doctors, specialties, appointments, public content, contact methods, social links, opening hours, branding, and configuration.
  • Academic scope. Deliver a complete bilingual application without payments, insurance processing, medical-record integration, or claims of production-clinic readiness.

Technway's Role

  • Requirements analysis and role-permission modeling.
  • Information architecture and end-to-end user-flow planning.
  • Responsive bilingual UI design and front-end implementation.
  • PHP controller and application-logic development with Twig integration.
  • MySQL data modeling and appointment-state handling.
  • Manual testing, validation, and technical documentation.

Discovery and Approach

  1. Model the roles first. Patient, doctor, and receptionist responsibilities were defined before the screens so each action had a clear owner and permission boundary.
  2. Define appointment states and constraints. Availability, period capacity, request confirmation, cancellation, follow-up appointments, attendance, notes, and results were treated as connected business rules.
  3. Separate presentation from application logic. Twig templates and shared layouts handle presentation, while PHP classes and API-style controllers manage data and operations through PDO and MySQL.
  4. Test complete journeys. The work was reviewed from account access through booking, doctor response, schedule management, administration, notifications, and bilingual interface behavior.

Design and Technical Solution

  • Patient experience. Doctor discovery, profile details, working-day availability, appointment type, notes, and booking management are joined into one predictable journey.
  • Doctor workspace. Doctors control bilingual profile information, publish dated morning and evening capacity, respond to requests, and record consultation results.
  • Receptionist administration. A broad control panel manages clinical entities, appointments, public-page content, opening hours, contact channels, branding, and configuration.
  • Application foundation. PHP 8, Twig, PDO and MySQL, reusable templates, Sass, Bootstrap, JavaScript, jQuery, and AJAX support the complete role-based application.

Accessibility

The interface uses labeled forms, visible actions, responsive layouts, and clear validation and status feedback. Dedicated RTL styles and Arabic phrases support right-to-left presentation rather than relying only on translated text.

A current WCAG conformance audit was not part of the original academic scope, so the project should not be presented with a formal accessibility compliance claim.

Performance

Server-rendered PHP and Twig pages provide the main application structure, while AJAX is used for targeted form, filtering, notification, and management actions. Compiled and minified CSS and JavaScript reduce unnecessary front-end weight.

No verified production performance score is claimed because the supplied project is an academic codebase rather than a monitored live deployment.

Testing and Quality Assurance

Manual testing covered authentication, role permissions, profile updates, doctor availability, capacity rules, duplicate-booking restrictions, appointment requests, acceptance and decline flows, cancellation, consultation results, notifications, content controls, and responsive layouts.

English and Arabic phrase loading and RTL styling were also reviewed. The repository does not include an automated application test suite, so that limitation remains explicit.

Results and Key Outcomes

  • Working three-role platform. The delivered application connects patient, doctor, and receptionist workflows instead of demonstrating isolated screens.
  • Structured operational model. The database snapshot defines 23 tables for users, sessions, roles, appointments, schedules, notifications, specialties, content, and configuration.
  • Reusable bilingual foundation. Shared Twig layouts, language files, RTL styles, and reusable JavaScript workflows make the application broader than a one-page prototype.
  • Honest scope. CABA demonstrates a complete academic product workflow while keeping production medical, security, and operational claims outside the case study.

Lessons and Technical Highlights

  • Model permissions and appointment states before designing the interface. This prevents contradictory actions and makes validation easier to explain.
  • Bilingual applications require data and layout decisions, not only translated labels. Profiles, public content, direction, spacing, and defaults all need deliberate handling.
  • Administrative content controls can make a custom application more maintainable without turning it into a generic CMS.
  • Before production use, the application would require security modernization, including contemporary password hashing, stricter upload validation, hardened session cookies, secret management, and operational monitoring.
CABA clinic appointment platform showing doctor discovery, appointment booking, availability, and administration interfaces

Three roles, one coordinated system

CABA connects the complete appointment workflow

  • Patient

    Discover doctors, review profiles and availability, request new or follow-up appointments, update or cancel active requests, and follow appointment status.

  • Doctor

    Maintain a bilingual profile, publish morning and evening availability, set capacity, respond to requests, add notes, and record visit results.

  • Receptionist

    Administer doctors, specialties, appointments, public-page content, contact methods, social channels, opening hours, branding, and configuration.

Doctor discovery, profile review, and booking entry point

Patient booking journey

From doctor discovery to a controlled appointment request

Patients can compare doctors, inspect profiles and working days, then submit a request with a date, period, appointment type, and notes. The workflow also limits conflicting requests and keeps confirmation states visible.

CABA doctor workflow showing a doctor profile, working-day capacity, appointment response, and appointment status
Doctor profile, schedule capacity, and request response

Doctor availability and response

Availability is modeled by date, period, and capacity

Doctors define working days, choose morning or evening periods, and set a maximum number of appointments for each period. New requests must be accepted or declined, and completed visits can include notes and recorded results.

CABA receptionist administration showing statistics, doctor creation, specialty management, working-day setup, and control-panel navigation
Operational controls for clinic data, schedules, content, and configuration

Receptionist administration

The control panel manages more than appointments

The administrative experience covers doctor accounts, specialties, working days, appointment statistics, public-page content, contact information, social channels, opening hours, application colors, branding, and configuration.

Application foundation

A complete custom PHP application, not a static prototype

  • Bilingual interface

    English and Arabic phrases, browser-language defaults, RTL styles, and bilingual profile and content fields.

  • Structured data

    23 MySQL tables cover users, sessions, roles, appointments, schedules, notifications, specialties, content, and application settings.

  • Reusable presentation

    Twig templates, shared layouts, Sass, Bootstrap, and reusable JavaScript workflows reduce duplicated markup.

  • Targeted interaction

    jQuery and AJAX update forms, filters, notifications, and management actions without rebuilding the full page.

  • Operational messaging

    PHPMailer and notification records support contact and appointment-related communication.

  • Academic scope

    The delivered system demonstrates the workflow; production use would require security hardening, modern password storage, and operational controls.

Technway digital platform case study showing bilingual pages, service cards, and the headless content architecture

Headless CMS

Technway Digital Platform

A bilingual corporate website and content platform that combines a carefully designed Next.js experience with a custom headless WordPress editorial system.

View Case Study
Technway Component Library showing a Storybook component catalog, button states, and a typed API surface

Design System

Component Library

A cross-framework component platform that turns repeated interface patterns into documented Stencil web components, React and Next.js adapters, and reusable layout foundations.

View Case Study

Have a website or project idea?

Share your idea or the challenge you are facing, and we will help you define the right path before design or development begins.