Easemed is a secure and user-friendly web platform designed to simplify hospital–patient interaction. It enables online registration, hospital management, and appointment scheduling, improving healthcare efficiency and accessibility.
- Secure online patient registration
- Fast and simple appointment booking
- Hospitals can manage details and view appointments
- Boosts workflow efficiency by 30%
- Increases patient engagement by 70%
- Create an account & log in securely
- Browse all registered hospitals
- View hospital details, images & ratings
- Book appointments with preferred time slot
- View appointment history
- Sign up & register hospital details
- Add extra content (blogs, images, highlights)
- Log in with unique credentials
- Access all patient appointments in one dashboard
- Session-based authentication
- MySQL relational database
- Dynamic UI with EJS templates
- Clean and modular Express routing
Frontend: HTML, CSS, JavaScript, EJS Backend: Node.js, Express.js, express-session, body-parser Database: MySQL
Easemed/
│── public/ # Static CSS, JS, images
│── views/ # EJS templates
│── screenshots/ # Project screenshots including homepage.png
│── node_modules/ # Installed Node modules
│── app.js # Main backend server
│── package.json
│── package-lock.json
└── README.md
git clone https://github.com/your-username/easemed.git
cd easemedCheck Node.js and npm versions:
node -v
npm -vInstall Node.js from Node.js official website if not present.
npm install express
npm install body-parser
npm install express-session
npm install mysql
npm install ejsOr simply run:
npm install- Install MySQL server if not installed.
- Create database:
CREATE DATABASE easmed;- Create tables:
-- userdetails table
CREATE TABLE userdetails (
id INT AUTO_INCREMENT PRIMARY KEY,
fullName VARCHAR(25) NOT NULL,
email VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(25) NOT NULL
);
-- hospital_information table
CREATE TABLE hospital_information (
id INT AUTO_INCREMENT PRIMARY KEY,
hospitalName VARCHAR(50) NOT NULL,
state VARCHAR(25) NOT NULL,
city VARCHAR(25) NOT NULL,
rating INT NOT NULL,
email VARCHAR(50) UNIQUE NOT NULL,
image_url VARCHAR(300),
password VARCHAR(25) NOT NULL,
address VARCHAR(300) NOT NULL
);
-- hospital_other_information table
CREATE TABLE hospital_other_information (
id INT,
image_url VARCHAR(300),
image_url_2 VARCHAR(300),
blog_content_1 VARCHAR(500),
title VARCHAR(50),
image_url_3 VARCHAR(300),
blog_content_2 VARCHAR(500)
);
-- patientappointment table
CREATE TABLE patientappointment (
Patient_id INT NOT NULL,
hospital_id INT NOT NULL,
hospital_name VARCHAR(50) NOT NULL,
specialty VARCHAR(50) NOT NULL,
appointment_date DATE NOT NULL,
appointment_slot VARCHAR(50) NOT NULL,
patient_name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
age INT NOT NULL,
phone_number VARCHAR(10) NOT NULL,
email VARCHAR(50) NOT NULL
);- Create tables (
userdetails,hospital_information,hospital_other_information,patientappointment) — see schema below. - Update database connection in
app.js:
const connection = mysql.createConnection({
user: "your_mysql_user",
host: "localhost",
password: "your_mysql_password",
database: "easmed"
});node app.jsOpen your browser and visit:
http://localhost:5000
- Replace default session secret in
app.js:
const mySecretKey = 'YourStrongSecretKeyHere';- Move database credentials to
.envfile for production. - Use bcrypt for password hashing in future.
- Email OTP verification
- JWT authentication
- Doctor-wise slot booking
- Admin panel
- Docker deployment
- Automatic email notifications
Pull requests and issues are welcome! For major changes, please discuss first.
MIT License
Sumanth Gunji Full-Stack Developer Passionate about building real-world healthcare solutions
