How akash-annavarapu/doctor-appointment-booking-system works
The repository contains two distinct products: a MERN doctor-appointment system and a separately runnable TestPilot Lab for generating and reviewing tests against an allowlisted healthcare app. The graph keeps their workflows separate, while showing the healthcare app’s role-based booking stages and the Lab’s inspection, generation, review, and reporting capabilities. Some Lab subsystems are documented or named but not sampled; their links are omitted where the available evidence does not establish a call.
Main entry points: App.jsx Healthcare UI routes · server.js Lab API workflow · app.js HTTP route dispatch · appointmentController.js Scheduling logic
Components 32
Healthcare experience
- Healthcare UI routes
client/src/App.jsx - Session context
client/src/context/AuthContext.jsx - Appointment booking
client/src/pages/BookAppointment.jsx - Doctor dashboard
client/src/dashboard/DoctorDashboard.jsx - Patient dashboard
client/src/dashboard/UserDashboard.jsx - Admin dashboard
client/src/dashboard/AdminDashboard.jsx - Doctor discovery
client/src/components/FeaturedDoctors.jsx
Healthcare services
- HTTP route dispatch
server/app.js - Authentication routes
server/routes/authRoutes.js - Appointment routes
server/routes/appointmentRoutes.js - Doctor routes
server/routes/doctorRoutes.js - Scheduling logic
server/controllers/appointmentController.js - Doctor applications
server/controllers/doctorController.js - JWT user lookup
server/middleware/authMiddleware.js
Healthcare data
- User records
server/models/User.js - Doctor records
server/models/Doctor.js - Appointment records
server/models/Appointment.js - Notifications
server/models/Notification.js
TestPilot Lab
- Lab web interface
testpilot-lab/public/app.js - Lab API workflow
testpilot-lab/server.js - Read-only checks
testpilot-lab/verifiedChecks.js - Generated case execution
testpilot-lab/generatedCaseRunner.js - Human review
testpilot-lab/reviewSession.js
Test reporting
- Report ingestion and feed
server/routes/reportRoutes.js - Test run records
server/models/TestRun.js - Report validation
server/services/testRunReporting.js
Other components
- Patient
- Doctor
- Administrator
- Test designer
- Healthcare app URL
- Gemini / OpenAI
Connections 36
- Patient → Healthcare UI routes: uses
README.md - Doctor → Healthcare UI routes: uses
README.md - Administrator → Healthcare UI routes: uses
README.md - Healthcare UI routes → Session context: provides session
client/src/App.jsx - Healthcare UI routes → Appointment booking: routes to
client/src/App.jsx - Healthcare UI routes → Doctor dashboard: routes to
client/src/App.jsx - Healthcare UI routes → Patient dashboard: routes to
client/src/App.jsx - Healthcare UI routes → Admin dashboard: routes to
client/src/App.jsx - Patient → Doctor discovery: browses
README.md - Appointment booking → Appointment routes: requests booking
README.md - Doctor dashboard → Appointment routes: manages appointments
README.md - Admin dashboard → HTTP route dispatch: uses admin services
README.md - HTTP route dispatch → Authentication routes: mounts
server/app.js - HTTP route dispatch → Appointment routes: mounts
server/app.js - HTTP route dispatch → Doctor routes: mounts
server/app.js - Appointment routes → JWT user lookup: authenticates
server/routes/appointmentRoutes.js - Appointment routes → Scheduling logic: dispatches to
server/routes/appointmentRoutes.js - Doctor routes → Doctor applications: dispatches to
server/routes/doctorRoutes.js - Doctor routes → Scheduling logic: dispatches slots
server/routes/doctorRoutes.js - JWT user lookup → User records: loads user
server/middleware/authMiddleware.js - Doctor applications → Doctor records: reads and writes
server/controllers/doctorController.js - Doctor applications → User records: reads
server/controllers/doctorController.js - Doctor applications → Notifications: creates notices
server/controllers/doctorController.js - Scheduling logic → Appointment records: reads and writes
server/controllers/appointmentController.js - Scheduling logic → Doctor records: reads
server/controllers/appointmentController.js - Scheduling logic → Notifications: uses notices
server/controllers/appointmentController.js - Test designer → Lab web interface: submits story
README.md - Lab web interface → Lab API workflow: calls API
README.md - Lab API workflow → Healthcare app URL: inspects public data
testpilot-lab/server.js - Lab API workflow → Read-only checks: runs checks
testpilot-lab/server.js - Lab API workflow → Generated case execution: executes approved cases
testpilot-lab/server.js - Lab API workflow → Human review: handles review
testpilot-lab/server.js - Lab API workflow → Gemini / OpenAI: requests generation
- HTTP route dispatch → Report ingestion and feed: mounts reports
server/app.js - Report ingestion and feed → Report validation: validates payload
server/routes/reportRoutes.js - Report ingestion and feed → Test run records: stores and reads
server/routes/reportRoutes.js