How soham-lodh/prescripto works
Prescripto is a healthcare appointment platform with patient and combined admin/doctor portals backed by an Express API. Patients discover doctors, manage profiles, book and track appointments, and submit contact messages; doctors manage availability and appointments; admins manage doctors, appointments, and messages. The graph separates portal state and workflows from API routing, domain controllers, persistence, and image storage. Relationships reflect shown calls, imports, or README capabilities; unsampled page and backend behavior is not inferred beyond documented features.
Main entry points: server.js API server · userController.js Patient workflows · adminController.js Admin workflows · AppContext.jsx Patient state
Components 31
Patient portal
- Patient app
frontend/src/App.jsx - Patient state
frontend/src/context/AppContext.jsx - Sign-in and profile
frontend/src/pages/Login.jsx - Doctor discovery
frontend/src/pages/Doctors.jsx - Appointment booking
frontend/src/pages/Appointments.jsx - Appointment history
frontend/src/pages/MyAppointments.jsx - Contact form
frontend/src/pages/Contact.jsx
Admin and doctor portal
- Staff app
admin/src/App.jsx - Admin state
admin/src/context/AdminContext.jsx - Doctor state
admin/src/context/DoctorContext.jsx - Doctor management
admin/src/pages/Admin/AddDoctor.jsx - Doctor directory
admin/src/pages/Admin/DoctorsList.jsx - Platform appointments
admin/src/pages/Admin/AllAppointments.jsx - Message inbox
admin/src/pages/Admin/Messages.jsx - Doctor schedule
admin/src/pages/Doctor/DoctorAppointments.jsx - Doctor profile
admin/src/pages/Doctor/DoctorProfile.jsx
REST API
- API server
backend/server.js - Patient routes
backend/routes/userRoute.js - Doctor routes
backend/routes/doctorRoutes.js - Admin routes
backend/routes/adminRoutes.js
Domain and persistence
- Patient workflows
backend/controllers/userController.js - Doctor workflows
backend/controllers/doctorController.js - Admin workflows
backend/controllers/adminController.js - Appointment lifecycle
backend/helpers/appointmentHelper.js - Doctor records
backend/models/doctorModel.js - Patient records
backend/models/userModel.js - Appointment records
backend/models/appointmentModel.js - Contact messages
backend/models/contactModel.js
Other components
- Patient
- Admin or doctor
- Cloudinary
Connections 36
- Patient → Patient app: uses
- Patient app → Patient state: provides state
frontend/src/main.jsx - Patient state → API server: requests doctors and profile
frontend/src/context/AppContext.jsx - Sign-in and profile → Patient state: uses
frontend/src/pages/Login.jsx - Doctor discovery → Patient state: uses
frontend/src/context/AppContext.jsx - Appointment booking → Patient state: uses
frontend/src/pages/Appointments.jsx - Appointment history → Patient state: uses
frontend/src/pages/MyAppointments.jsx - Contact form → API server: submits message
- Admin or doctor → Staff app: uses
- Staff app → Admin state: provides state
admin/src/main.jsx - Staff app → Doctor state: provides state
admin/src/main.jsx - Admin state → API server: requests admin data
admin/src/context/AdminContext.jsx - Doctor state → API server: requests doctor data
admin/src/context/DoctorContext.jsx - Doctor management → Admin state: uses
- Doctor profile → Doctor state: updates profile
admin/src/pages/Doctor/DoctorProfile.jsx - Admin routes → Admin workflows: routes to
backend/routes/adminRoutes.js - Doctor routes → Doctor workflows: routes to
backend/routes/doctorRoutes.js - API server → Admin routes: mounts
backend/server.js - API server → Doctor routes: mounts
backend/server.js - API server → Patient routes: mounts
backend/server.js - Patient routes → Patient workflows: routes to
backend/routes/userRoute.js - Patient workflows → Doctor records: reads and updates
backend/controllers/userController.js - Patient workflows → Patient records: reads and writes
backend/controllers/userController.js - Patient workflows → Appointment records: creates and updates
backend/controllers/userController.js - Patient workflows → Contact messages: creates messages
backend/controllers/userController.js - Patient workflows → Appointment lifecycle: checks completion
backend/controllers/userController.js - Doctor workflows → Doctor records: reads and updates
backend/controllers/doctorController.js - Doctor workflows → Appointment records: reads and updates
backend/controllers/doctorController.js - Doctor workflows → Appointment lifecycle: checks completion
backend/controllers/doctorController.js - Admin workflows → Doctor records: manages doctors
backend/controllers/adminController.js - Admin workflows → Appointment records: manages appointments
backend/controllers/adminController.js - Admin workflows → Contact messages: reads messages
backend/controllers/adminController.js - Admin workflows → Patient records: reads patients
backend/controllers/adminController.js - Appointment lifecycle → Appointment records: updates lifecycle
backend/helpers/appointmentHelper.js - Admin workflows → Cloudinary: uploads doctor images
backend/controllers/adminController.js - Doctor workflows → Cloudinary: uploads profile images
backend/controllers/doctorController.js