Introduction
1. Introduction
1.1 Purpose
This document outlines the technical requirements and architectural structure for the BookADoc platform. The goal of this document is to provide engineers with a deep understanding of the entire system, technical requirements and architectural design. This also enable collaboration on this document whenever necessary.
1.2 Scope
This document will be limited to just technical requirements and architectural structure of the BookADoc platform.
2. System Overview
The BookADoc platform is a cloud-based, Multi-Service SaaS application designed to streamline the process of scheduling medical appointments for patient as well as make managing those appointment a breeze for clinic admin and providers alike.
3. Technical Requirements
3.1 Front-end
3.1.1 Technology Stack
- Language: TypeScript
- Framework: React
- UI Library: Chakra UI
3.1.2 Front-end Services & Repositories
- WebApp: This is the customer facing portal
- Clinic Admin - BizApp: This is the clinic facing portal
- BookaDoc Marketing Site:
- Alethian Marketing Site:
3.2 Back-end API & Worker
3.2.1 Technology Stack
- Language: JavaScript
- Framework: NodeJs & Express
NB: Plans are ongoing to migrate to NestJS
3.2.2 Repositories
3.3 Workflow
3.3.1 Technology Stack
3.3.1.1 Workflow Application
- Language: PHP
- Framework: Laravel
3.3.1.2 Document Generation Tool
- Language: JavaScript
- Framework: NodeJs
- Library: Puppeteer
3.3.2 Repositories
- Workflow
- URL2PDF: This is the document generation tool called by the workflow app over terminal to generate eSignature document
3.3 Database & Other Storage
- Database: MySQL serves as the main data store for the application, handling the persistence of all application data. It stores all patient, and provider information, appointment data, audit trials, configurations, etc.
- File Storage: AzureBlob storage serve is the main filesystem for the entire platform for file storage and retrieval.
- Caching & Job Management: Redis is used for caching and Job queue management, reducing the load on the database and improving performance.
- Vector Index: Pinecone
4. Architectural System Design
Below is a diagram of the communication between the different services:

5. Conclusion
This architecture ensures scalability, performance, and clear separation of concerns. The system allows each component to scale independently while maintaining efficient communication between services.