How ngoc-quyen/datn works
DoctorCare is a web application for discovering doctors and specialties, booking appointments, and managing care; it also provides doctor and administrator workflows. The principal flow is a visitor entering the web routes, browsing doctors, selecting an appointment, and receiving booking information. Authenticated doctors manage schedules and appointments, while administrators manage doctors, users, posts, and schedules. The README documents these capabilities; some view paths it names are not present in the supplied tree. Edges follow the route declarations, sampled imports, and documented flows; unsampled implementation details are not inferred.
Main entry points: adminController.js Admin pages · index.js Sequelize models · web.js Web routes · homeController.js Public pages
Components 24
Web entry
- App server
src/server.js - Web routes
src/routes/web.js - Authentication
src/controllers/authController.js
Care discovery
- Public pages
src/controllers/homeController.js - Doctor and specialty catalog
src/services/specializationService.js - Home data
src/services/homeService.js - Posts
src/services/postService.js - Search indexing
src/services/syncsElaticService.js
Appointments and care
- Patient pages
src/controllers/customerController.js - Patient bookings and records
src/services/patientService.js - Doctor pages
src/controllers/doctorController.js - Doctor services
src/services/doctorService.js - Schedule management
src/services/scheduleService.js - Facebook bot endpoint
src/controllers/botFBController.js - Chat service
src/services/chatFBService.js
Operations
- Admin pages
src/controllers/adminController.js - User management
src/services/userService.js - Customer service
src/services/customerService.js
Data and integrations
- Sequelize models
src/models/index.js - MySQL database
- Email delivery
src/config/mailer.js - Firebase image storage
src/services/imgLoadFirebase.js - Elasticsearch config
src/config/elastic.js
Other components
- Visitor or user
Connections 42
- Visitor or user → App server: opens app
- App server → Web routes: mounts routes
src/server.js - Web routes → Authentication: routes auth
src/routes/web.js - Web routes → Public pages: routes pages
src/routes/web.js - Web routes → Patient pages: routes patients
src/routes/web.js - Web routes → Doctor pages: routes doctors
src/routes/web.js - Web routes → Admin pages: routes admin
src/routes/web.js - Web routes → Facebook bot endpoint: routes bot
src/routes/web.js - Public pages → Home data: requests data
src/controllers/homeController.js - Public pages → Doctor and specialty catalog: requests specialties
src/controllers/homeController.js - Public pages → Doctor services: requests doctors
src/controllers/homeController.js - Public pages → Posts: requests posts
src/controllers/homeController.js - Public pages → Search indexing: uses search
src/controllers/homeController.js - Public pages → Patient bookings and records: requests booking info
src/controllers/homeController.js - Patient pages → Patient bookings and records: requests patient data
src/controllers/customerController.js - Doctor pages → Doctor services: requests doctor data
src/controllers/doctorController.js - Doctor pages → Schedule management: requests schedules
src/controllers/doctorController.js - Doctor pages → Posts: requests posts
src/controllers/doctorController.js - Admin pages → Patient bookings and records: manages patients
src/controllers/adminController.js - Admin pages → Home data: requests data
src/controllers/adminController.js - Admin pages → User management: manages users
src/controllers/adminController.js - Admin pages → Doctor and specialty catalog: manages specialties
src/controllers/adminController.js - Admin pages → Customer service: requests customers
src/controllers/adminController.js - Admin pages → Doctor services: manages doctors
src/controllers/adminController.js - Admin pages → Schedule management: manages schedules
src/controllers/adminController.js - Admin pages → Posts: manages posts
src/controllers/adminController.js - Facebook bot endpoint → Chat service: dispatches chat
src/controllers/botFBController.js - Home data → Sequelize models: queries models
src/services/homeService.js - Doctor and specialty catalog → Sequelize models: queries models
src/services/specializationService.js - Posts → Sequelize models: queries models
src/services/postService.js - Patient bookings and records → Sequelize models: queries models
src/services/patientService.js - Doctor services → Sequelize models: queries models
src/services/doctorService.js - Schedule management → Sequelize models: queries models
src/services/scheduleService.js - User management → Sequelize models: queries models
src/services/userService.js - Customer service → Sequelize models: queries models
src/services/customerService.js - Sequelize models → MySQL database: persists data
src/models/index.js - Patient bookings and records → Email delivery: sends booking email
src/services/patientService.js - Doctor services → Email delivery: sends attachments
src/services/doctorService.js - Admin pages → Firebase image storage: uploads images
src/controllers/adminController.js - Firebase image storage → MySQL database
- Posts → Search indexing: syncs search
src/services/postService.js - Search indexing → Elasticsearch config: uses index