An advanced Doctor Appointment Booking web application built with the MERN Stack — featuring secure authentication, appointment scheduling, and an intuitive UI.
- 🔐 User & Doctor Authentication (JWT / OAuth)
- 📅 Appointment Scheduling & Management
- 👨⚕️ Doctor Availability Tracking
- 📱 Fully Responsive Design
- ⚡ Fast API with Express.js
- 🗄 MongoDB Atlas Cloud Database
Frontend: React.js + Tailwind CSS / Material UI
Backend: Node.js + Express.js
Database: MongoDB (Mongoose ODM)
Authentication: JWT / OAuth
State Management: Redux Toolkit (if used)
doctor/
├── backend/ # Node.js + Express API
├── frontend/ # React.js Client App
├── package.json # Main scripts & dependencies
├── README.md
⚙️ Prerequisites
Make sure you have installed:
Node.js (>= 18.x) → Download Here
npm or yarn
MongoDB (Local or Atlas Cloud Instance)
Git
🚀 Installation & Setup
1️⃣ Clone the Repository
bash
Copy
Edit
git clone https://github.com/yourusername/doctor.git
cd doctor
2️⃣ Install Backend Dependencies
bash
Copy
Edit
cd backend
npm install
3️⃣ Install Frontend Dependencies
bash
Copy
Edit
cd ../frontend
npm install
🔑 Environment Variables
Create .env file inside the backend folder:
env
Copy
Edit
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
For Frontend (frontend/.env):
env
Copy
Edit
REACT_APP_API_URL=http://localhost:5000
▶️ Running the Application
Development Mode (Both Frontend & Backend)
Open two terminals:
Terminal 1 – Backend
bash
Copy
Edit
cd backend
npm run dev
Terminal 2 – Frontend
bash
Copy
Edit
cd frontend
npm start
The app will be available at:
🌐 Frontend → http://localhost:3000
⚙ Backend API → http://localhost:5000
📦 Build for Production
Frontend:
bash
Copy
Edit
cd frontend
npm run build
Backend:
Serve the build folder with Express or a hosting service like Vercel/Netlify.
🖥 Cross-Platform Notes
Windows (PowerShell / CMD)
bash
Copy
Edit
set PORT=5000 && npm run dev
macOS / Linux (Bash / Zsh)
bash
Copy
Edit
export PORT=5000 && npm run dev
🧪 Testing (Optional)
bash
Copy
Edit
cd backend
npm test
🤝 Contributing
Fork the repository
Create a new branch (feature/your-feature)
Commit changes (git commit -m 'Add new feature')
Push to branch (git push origin feature/your-feature)
Open a Pull Request
📜 License
This project is licensed under the MIT License.