A full-stack Healthcare Management System built on the MERN-style architecture — connecting patients, doctors, and admins on a single secure platform.
CareConnect Suite streamlines appointment booking, doctor management, and patient records through a role-based access system. Patients can register and book appointments, doctors manage their schedules and patients, and admins oversee the entire system from a dedicated dashboard.
- 🔐 JWT-based Authentication — secure signup/login with role management
- 👥 Role-Based Access Control — separate flows for
admin,doctor, andpatient - 🩺 Doctor Management — admins can onboard doctors directly from the dashboard
- 📅 Appointment System — patients can book, view, and manage appointments
- 📂 File Uploads — local disk storage via Multer (reports, profile pictures, etc.)
- 🏢 Department Seeding — pre-configured hospital departments via seed script
- ⚡ Modern Frontend — built with Next.js, React & TypeScript for speed and type safety
- 🌐 RESTful API — clean Express-based backend architecture
| Layer | Technology |
|---|---|
| Frontend | Next.js, React, TypeScript |
| Backend | Node.js, Express.js |
| Database | MongoDB |
| Auth | JWT (JSON Web Tokens) |
| File Storage | Multer (local disk) |
| Dev Tools | Nodemon, dotenv |
careconnect-suite/
├── src/ # Frontend application (Next.js + React + TS)
├── backend/ # Express API server
│ ├── uploads/ # Multer file storage
│ ├── .env.example # Backend environment template
│ └── ...
├── .env # Frontend environment variables
└── README.md
- Node.js (v18+ recommended)
- MongoDB (local instance or MongoDB Atlas URI)
- npm
cd backend
npm install
cp .env.example .envUpdate backend/.env with the following:
| Variable | Description |
|---|---|
MONGO_URI |
Your MongoDB connection string |
JWT_SECRET |
Any secure random secret string |
CLIENT_URL |
Allowed frontend origins (default includes https://careconnectff.netlify.app, the Netlify preview URL, and local dev URLs) |
SEED_ADMIN_EMAIL |
(optional) Default admin email |
SEED_ADMIN_PASSWORD |
(optional) Default admin password |
SEED_ADMIN_NAME |
(optional) Default admin name |
Run the backend:
npm run devFrom the project root:
npm installEnsure your root .env contains:
NEXT_PUBLIC_API_URL="https://hospital-appointment-booking-web.onrender.com/api"Run the frontend:
npm run devThe Next.js dev server runs by default on http://localhost:8080.
From project root:
| Command | Description |
|---|---|
npm run dev |
Start frontend dev server |
npm run dev:backend |
Start backend dev server |
npm run build |
Create frontend production build |
From backend/:
| Command | Description |
|---|---|
npm run dev |
Start backend with nodemon (auto-restart) |
npm run seed |
Seed default departments + optional admin account |
- Patient — Self-signup available from the UI; can book & manage appointments.
- Doctor — Account created only by an Admin via
Admin → Doctors. - Admin — Full system access; manages doctors, departments, and appointments.
- All protected routes/pages are guarded based on role (
admin,doctor,patient).
- Email/SMS appointment reminders
- Doctor availability calendar UI
- Patient medical history timeline
- Cloud file storage (S3/Cloudinary) instead of local disk
- Dockerize backend + frontend for easier deployment
This project is licensed under the MIT License.
For issues or contributions, please open an issue in the repository or reach out to the maintainer directly.