Smart Doctor Appointment & Availability Management System
Base URL: https://medislot-production-d881.up.railway.app
Booking a doctor's appointment should be simple. No phone calls, no queues, no confusion about availability. MediSlot is my attempt at solving this — a clean backend API that handles everything from doctor registration to appointment booking, built with security and real-world usability in mind.
- Patients can register, search doctors by specialization, and book appointments
- Doctors can manage their availability and view their schedule
- Smart conflict detection prevents double booking automatically
- Role based access ensures patients, doctors, and admins only see what they should
- JWT tokens keep every request secure without sessions
| Layer | Technology |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot 3.5.0 |
| Security | Spring Security + JWT |
| Database | MySQL 8.0 |
| ORM | Spring Data JPA |
| Build Tool | Maven |
| Deployment | Railway |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register | Register as patient or doctor |
| POST | /api/auth/login | Login and get JWT token |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/doctors | Get all doctors |
| GET | /api/doctors?specialization=Cardiology | Search by specialization |
| GET | /api/doctors/{id} | Get doctor by ID |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/appointments/book | Book an appointment |
| GET | /api/appointments/my/{patientId} | View my appointments |
| DELETE | /api/appointments/{id} | Cancel an appointment |
# Clone the repo
git clone https://github.com/NandithaKale/MediSlot.git
cd MediSlot
# Update src/main/resources/application.properties
# with your MySQL username and password
# Run
mvn spring-boot:run
# Test
http://localhost:8080/api/doctorssrc/main/java/com/nanditha/medislot/
├── controller/ — REST Controllers
├── model/ — JPA Entities
├── repository/ — Spring Data Repositories
├── service/ — Business Logic
├── security/ — JWT Filter and Util
├── config/ — Security Configuration
└── dto/ — Data Transfer Objects
I'm Nanditha, a Computer Science student at BMS Institute of Technology and Management. I built this project to get hands-on with Spring Boot, REST APIs, and JWT security — and to build something that solves a real problem.