eHospital v 0.1

A web-based Hospital Management System with a recovery backup feature that can recover the system in the case of a ransomware attack happens.

Graduation Project Details 🗃️

Features ☑️

  • Access conrtol with 4 roles in system(Admin, Doctor, Receptionist, pharmacist).
  • Login and password reset functions.
  • Export encrypted backup and send it to a third party.
  • Import encrypted backup and deploy it on server.
  • Add new user and update existing ones.
  • ...

Code Organisation 📂

+---encryptedBackUp // Encyption backup script 
+---models // Database models 
+---routes // Routing and logic 
+---views 
       \---ui
        +---admin // Admin pages
        +---doctor // Doctor pages
        +---pharmacist // Pharmacist pages
        \---receptionist // Receptionist pages

Technologies 🛠️

Backend ⚙️ :

Name Description Link
Nodejs Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine https://nodejs.org/en/
Express.js Express.js, or simply Express, is a web application framework for Node.js https://expressjs.com/
MongoDB MongoDB is a cross-platform document-oriented database program. https://www.mongodb.com/
Mongoose Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node https://mongoosejs.com/
Vash Vash is a template view engine that uses Razor Syntax https://github.com/kirbysayshi/vash
... ... ...

Frontend 🖥️

Name Description Link
Admin Wrap Lite Dashboard template https://www.wrappixel.com/
Bootstrap The most popular HTML, CSS, and JS library in the world. https://getbootstrap.com/
Font Awesome The world's most popular and easiest to use icon https://fontawesome.com/
... ... ...

Database Schema 🗃️

DB


REST API 🔗

URL Description
/admin/api/ Admin operations
/doctor/api/ Doctor operations
/receptionist/api/ Receptionist operations
/pharmacist/api/ Pharmacist operations

Encrypted Backup 📦

Use Cron to trigger /encryptedBackUp/encryptPatientsRecords.js


Deployment 🚀

root@ubuntu:~# git clone https://github.com/ahussam/eHospital.git
root@ubuntu:~# cd eHospital
root@ubuntu:~# npm install 

Then go to http://127.0.0.1:3000


Test Credentials 🔑

Role Email Password
Admin admin@admin.com 123456
Doctor doctor@doctor.com 123456
Receptionist receptionist@receptionist.com 123456
Pharmacist pharmacist@pharmacist.com 123456

Screenshots 📷

Admin UI

DB

Doctor UI

DB

Receptionist UI

DB

Pharmacist UI

DB


TODO

  • Implement REST api functions.
  • Implement XSS filtering before inserting to DB with Dompurify.
  • Code frontend Ajax calls.
  • Look for TODO in files to finish them.
  • Implement database other schema models and link them

License 📄

Free to use, copy and distribute.