This project is part of a philanthropic initiative, for the Medical and Social Center M.J.O. Beirut. A testament to this rapidly evolving digital age, we aimed to digitize the services offered by the Medical Center, not only to keep pace with modern advancements but also to enhance accessibility, efficiency, and convenience for both patients and medical personel. This project packs a list of applications forming the digital infrastrcure of the medical center, along with a user-friendly web portal for patients, doctors and admins. Embodying the the spirit of M.J.O. Beirut, this platform follows best practices for rigid information security and scalability.
The different features are:
- Pharmacy and Meds Sotrage management
- Appointments management with email notification
- Social news builder
- Secure Patients records management
All those features are seamlessly integrated in a Single-Page UI with customized visibility for each user/medical personel.
The diagram above shows the general structure. There are three main layers:
- The frontend
- The gateway
- The backend
The frontend, responsible for the user interface, seamlessly interacts with cloud services for data storage. Meanwhile, the backend, accessible only through the identity management gateway, handles business logic and data processing. Each backend module operates independently, ensuring robustness and future scalability. Our architecture is made with growth in mind, whether you’re expanding within a monolithic system or transitioning to a full microservices setup.
Module | Purpose | Tool |
---|---|---|
Database | Storing generated user data | Postgres |
Storing sensitive user data | Firestore | |
Authentication service | Authenticating users and admins and supported extension for role-based access control | Firebase Auth |
File Storage service | Stpring static images from users | Firebase Cloud Storage |
API Gateway | Reverse proxy to handle requests to multiple backends | Nginx |
Deployment | Containerization tool to handle local and future remote deployments | Docker |
Front-end framework | Enterprise level, easy to use user interface with rich components | Angular |
Backend frameworks | User related business logic | Java Spring Boot |
Internal tooling logic | Python with FastAPI | |
Firebase admin tooling extension and wrapper | Python with FastAPI |
- Docker
- A firebase project including
- Firebase auth for identity management
- Firestore for sensitive
- Firebase storage
All used services are part of the free plan.
Excluded from this repository are the Firebase setup processes.
Setup for auth:
- Password authentication and Google authenticaition.
- Password verfication.
- Password change.
Setup for Firestore:
- Store protection based on auth status and roles
- Schema initialization
You will firstly need to change the database connection strings in the proper application.properties
files. Removal of the SQL container in the docker compose file may be necessary if you are using a standalone Database Server.
The database schemas needed are not automatically created. They should be manually added.
Once satisfied
docker compose up