How sanjay-it008/hospital- works
Purpose and Entry Points
This is a hospital-management system split into a Java backend and a JavaScript frontend. The backend entry point is hospital-backend/src/main/java/com/hospital/HospitalApplication.java; its runtime settings are in hospital-backend/src/main/resources/application.properties. The frontend bootstraps from hospital-frontend/src/index.js into hospital-frontend/src/App.js.
Backend API Layer
HTTP-facing resources are separated by domain and authentication:
• hospital-backend/src/main/java/com/hospital/controller/AuthController.java
• hospital-backend/src/main/java/com/hospital/controller/AppointmentController.java
• hospital-backend/src/main/java/com/hospital/controller/DoctorController.java
• hospital-backend/src/main/java/com/hospital/controller/PatientController.java
Controllers form the backend boundary for login/registration and patient, doctor, and appointment operations, delegating domain work rather than directly representing the persistence layer.
Domain and Persistence
The central persisted entities are users, patients, doctors, and appointments:
• hospital-backend/src/main/java/com/hospital/model/User.java
• hospital-backend/src/main/java/com/hospital/model/Patient.java
• hospital-backend/src/main/java/com/hospital/model/Doctor.java
• hospital-backend/src/main/java/com/hospital/model/Appointment.java
Repository interfaces isolate data access per entity, including hospital-backend/src/main/java/com/hospital/repository/AppointmentRepository.java and hospital-backend/src/main/java/com/hospital/repository/UserRepository.java. Service classes are the intended business-logic boundary between controllers and repositories, notably hospital-backend/src/main/java/com/hospital/service/AppointmentService.java and hospital-backend/src/main/java/com/hospital/service/AuthService.java.
Authentication and Request Security
JWT-based authentication is a defining cross-cutting backend flow. hospital-backend/src/main/java/com/hospital/security/JwtFilter.java likely intercepts incoming requests, while hospital-backend/src/main/java/com/hospital/security/JwtUtil.java creates or validates tokens. Security policy and cross-origin access are centralized in:
• hospital-backend/src/main/java/com/hospital/config/SecurityConfig.java
• hospital-backend/src/main/java/com/hospital/config/CorsConfig.java
The primary protected-request flow is frontend API call → CORS/security chain → JWT filter → controller → service → repository.
Frontend Application and Role Workspaces
The frontend is a single-page application organized around user journeys and role-specific views. Shared application state includes authentication and toast/notification concerns:
• hospital-frontend/src/context/AuthContext.js
• hospital-frontend/src/context/ToastContext.js
• hospital-frontend/src/components/Layout.jsx
Main workflows are represented by hospital-frontend/src/pages/Login.jsx, hospital-frontend/src/pages/Register.jsx, hospital-frontend/src/pages/BookAppointment.jsx, hospital-frontend/src/pages/PatientDashboard.jsx, hospital-frontend/src/pages/DoctorDashboard.jsx, and hospital-frontend/src/pages/AdminPanel.jsx. hospital-frontend/src/components/AppointmentCard.jsx is a reusable appointment presentation unit.
Client Data Boundaries and External Services
hospital-frontend/src/services/api.js is the likely HTTP boundary to the Java backend and should be the primary location for token attachment, request normalization, and backend URL handling. The frontend also contains alternate or supplemental client-side data integrations:
• hospital-frontend/src/services/localDB.js
• hospital-frontend/src/services/supabaseDB.js
• hospital-frontend/src/supabaseClient.js
Supabase is therefore an external service dependency present in the client architecture. Its relationship to the backend persistence layer is not determinable from the tree and should be clarified before treating either backend repositories or Supabase as the sole system of record.
Runtime and Delivery Boundaries
The backend is Maven-based (hospital-backend/pom.xml) and structured as a Java application with conventional controller/service/repository layers. The frontend is a separate Node-managed build (hospital-frontend/package.json) with Tailwind/PostCSS styling configuration. They can be deployed independently, with browser traffic crossing from the frontend runtime to the backend API and potentially to Supabase.
Main entry points: Login.jsx Role workflows · App.js Application shell · JwtFilter.java JWT filter · AuthService.java Auth & appointment services
Components 17
Frontend SPA
- Frontend bootstrap
hospital-frontend/src/index.js - Application shell
hospital-frontend/src/App.js - Auth, toasts & layout
hospital-frontend/src/context/AuthContext.js - Role workflows · Login, registration, booking, and role dashboards.
hospital-frontend/src/pages/Login.jsx - Appointment card
hospital-frontend/src/components/AppointmentCard.jsx - Backend API client · Normalizes requests and attaches tokens.
hospital-frontend/src/services/api.js - Local data adapter
hospital-frontend/src/services/localDB.js - Supabase adapter
hospital-frontend/src/services/supabaseDB.js
Java Backend
- Hospital application
hospital-backend/src/main/java/com/hospital/HospitalApplication.java - Security & CORS chain · Applies CORS and protected-route policy.
hospital-backend/src/main/java/com/hospital/config/SecurityConfig.java - JWT filter
hospital-backend/src/main/java/com/hospital/security/JwtFilter.java - JWT utility
hospital-backend/src/main/java/com/hospital/security/JwtUtil.java - Domain API controllers · Auth, patient, doctor, and appointment endpoints.
hospital-backend/src/main/java/com/hospital/controller/AuthController.java - Auth & appointment services
hospital-backend/src/main/java/com/hospital/service/AuthService.java - Entity repositories · User and appointment repository interfaces.
hospital-backend/src/main/java/com/hospital/repository/UserRepository.java - Hospital entities · Users, patients, doctors, and appointments.
hospital-backend/src/main/java/com/hospital/model/User.java
External Data
- Supabase · Client-side supplemental data integration.
Connections 18
- Frontend bootstrap → Application shell: mounts
- Application shell → Auth, toasts & layout: provides
- Application shell → Role workflows: routes to
- Role workflows → Appointment card: renders
- Role workflows → Backend API client: API requests
- Role workflows → Local data adapter: may use
- Role workflows → Supabase adapter: may use
- Supabase adapter → Supabase: connects to
- Backend API client → Security & CORS chain: HTTP with token
- Hospital application → Security & CORS chain: configures
- Security & CORS chain → JWT filter: protected requests
- JWT filter → JWT utility: validates token
- JWT filter → Domain API controllers: authorized request
- Domain API controllers → Auth & appointment services: delegates
- Auth & appointment services → JWT utility: issues tokens
- Auth & appointment services → Entity repositories: reads and writes
- Entity repositories → Hospital entities: persists
- Supabase → Entity repositories: system-of-record relationship unknown