https://github.com/tom474/hospital_management_website
[RMIT 2024B] ISYS2099 - Database Applications - Group Assignment
https://github.com/tom474/hospital_management_website
daisyui expressjs javascript mongodb mysql nodejs reactjs tailwindcss web-development
Last synced: about 1 year ago
JSON representation
[RMIT 2024B] ISYS2099 - Database Applications - Group Assignment
- Host: GitHub
- URL: https://github.com/tom474/hospital_management_website
- Owner: tom474
- Created: 2024-08-06T13:54:25.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-19T06:26:41.000Z (over 1 year ago)
- Last Synced: 2025-03-04T09:19:31.792Z (over 1 year ago)
- Topics: daisyui, expressjs, javascript, mongodb, mysql, nodejs, reactjs, tailwindcss, web-development
- Language: JavaScript
- Homepage: https://youtu.be/fK2lt8eIvJg?si=Zu--IZ3GZRsCoYmh
- Size: 891 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hospital Management Website
A **web-based hospital management system** designed to streamline **patient management, staff scheduling, appointment handling, and medical records**. The system efficiently integrates **structured (SQL) and unstructured (NoSQL) data** to ensure secure, scalable, and high-performance healthcare management.
## Tech Stack
- **Client:** React.js, Tailwind CSS, Daisy UI
- **Server:** Node.js, Express.js
- **Database:** MySQL (Relational), MongoDB (Document-based)
## Features
### Patient Management
- Register and manage patient profiles.
- Store and retrieve **structured data** (personal details, medical history).
- Manage **unstructured data** (doctor’s notes, diagnostic images, lab results).
### Staff Management
- Manage staff profiles, roles, and schedules.
- Store **job change history** (title, salary, department).
- Maintain staff certificates and training records in MongoDB.
### Appointment Management
- View doctor schedules (busy/available status).
- Book, update, and cancel appointments.
- Prevent scheduling conflicts using transaction management.
### Reporting & Analytics
- Generate patient treatment history reports.
- Track **staff workload and performance** over time.
- View **billing and financial reports**.
### Security & Access Control
- **Role-based Access Control (RBAC)** for data privacy.
- Secure **staff permissions** (nurses can’t see sensitive patient details, only admins can view reports).
- Enforced **data integrity** through stored procedures and transactions.
### Performance Optimizations
- **Indexing & Partitioning** for efficient query execution.
- Optimized **query performance** for fast data retrieval.
- Secure storage of **sensitive information** (encryption & hashed credentials).
## Quick Start
> Follow these steps to set up the project locally on your machine.
Clone the repository
```bash
git clone https://github.com/tom474/hospital_management_website.git
```
Navigate to the project directory
```bash
cd hospital_management_website
```
Create `.env` file in `server` and set up environment variables
```
DB_HOST="localhost"
DB_DATABASE="hospital_database"
DB_USER_ADMIN="admin"
DB_PASS_ADMIN="admin123"
DB_USER_RECEPTIONIST="receptionist"
DB_PASS_RECEPTIONIST="receptionist123"
DB_USER_DOCTOR="doctor"
DB_PASS_DOCTOR="doctor123"
DB_USER_NURSE="nurse"
DB_PASS_NURSE="nurse123"
MONGO_URI="your_mongo_uri"
MONGO_DATABASE_NAME="hospital_database"
```
### MySQL Setup
From the project's root directory, navigate to `database/mysql`
```bash
cd database/mysql
```
Install dependencies
```bash
npm install
```
Initialize the MySQL Database
```bash
npm run setup-with-mock-data
```
### MongoDB Setup
From the project's root directory, navigate to `database/mongodb`
```bash
cd database/mongodb
```
Install dependencies
```bash
npm install
```
### Server Setup
From the project's root directory, navigate to `server`
```bash
cd server
```
Install dependencies
```bash
npm install
```
Start the server
```bash
npm start
```
### Client Setup
From the project's root directory, navigate to `client`
```bash
cd client
```
Install dependencies
```bash
npm install
```
Start the client
```bash
npm run dev
```