This is a full-stack web application for booking and managing hospital appointments. Patients can book appointments with available doctors, doctors can view, confirm, or manage these appointments, and the admin can manage user and view the booking activities. It includes user authentication, email forgot pasword, and a dashboard for different user roles.
The system allows:
- Patients to register, log in, and book appointments
- Doctors to view and manage appointments
- Admins to manage users
- Email notifications if the user forgot password
- Secure login using JWT
The frontend is built with React, and the backend uses Node.js, Express, and MongoDB.
git clone https://github.com/Franzerz/kunisys.git
cd kunisys
You'll need to install packages in both the root and client folders:
# Install backend dependencies
npm install
# Go into the client folder
cd client
# Install frontend dependencies
npm install
# Go back to the main project folder
cd ..
Create a .env
file in the root directory of the project and structure it like this:
PORT=8080
NODE_MODE=development
MONGODB_URL=your-mongodb-connection-string
JWT_SECRET=your-jwt-secret
GMAIL_USER=your-gmail-address
GMAIL_PASS=your-gmail-app-password
Note: This Gmail is use for sending the reset password link. Use a Gmail App Password instead of your regular Gmail password.
Once everything is installed and .env
is configured:
npm run dev
This will start both the backend and frontend servers concurrently using concurrently
.
- Backend will run on:
http://localhost:8080
- Frontend will run on:
http://localhost:3000
To promote the first user to an admin:
- Open MongoDB Compass.
- Go to the users collection in your database.
- Find the user you want to make an admin.
- Change their
isAdmin
field totrue
.
This will grant admin privileges to that user.