Skip to main content

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

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.