A concise summary of the backend capabilities implemented in this project.
Link to the database entity-relationship diagram: https://dbdiagram.io/d/6919c7fb6735e11170077862
Auth: Registration, login, refresh tokens, logout, password change/reset with OTP.Appointments: Booking, rescheduling, cancellation; patient/doctor-specific views; emergency booking; available slots.Doctors & Patients: Profiles, education, experience, certificates, profile images, search and public endpoints.Medical History: Create, update, and view patient medical records.Lab Tests: Create and manage lab test records.Feedback: Submit and fetch feedback; sentiment used in analytics.Booking: Link payments to bookings and manage flows.Notifications: In-app and email notifications for reminders, confirmations, cancellations, reschedules; unread counts and feeds.Reporting & Analytics: Doctor-centric analytics (peak hours, day-of-week, retention, demographics, cancellations, seasonal trends) and reporting endpoints.File Uploads: Upload and serve documents, certificates, medical documents, and profile images via Cloudinary.Payments: Razorpay integration for payment initiation, booking payments, webhooks, verification, statistics, and cancellation.
JWTauthentication usingjjwtwith refresh token flow.Spring Securitywith role-based access:PATIENT,DOCTOR,ADMIN.- Configurable
CORSorigins. - Login attempt limiting and IP block settings.
- Stateless sessions (
SessionCreationPolicy.STATELESS).
PostgreSQLvia JPA/Hibernate (Neon-hosted config present); optional MySQL driver included.Swagger/OpenAPIat/swagger-ui.htmland/v3/api-docs.Cloudinaryfor file storage.RazorpaySDK for payments.Actuatorfor health checks.JacksonJSR310 for date/time handling.ZXingfor QR code generation (utility available).
- Spring Boot
3.5, Java21. - Devtools enabled for hot reload in development.
- Verbose logging configured for security, web, and SQL.
This README intentionally focuses on what’s implemented. No clone/run instructions included.