How murari123-byte/sai-iconic-liv-pg-2-pg-website-management-system works
Sai Iconic Liv is a PG property brochure and starter management system. Visitors browse room options and property information, then submit an enquiry; if submission fails, the site offers WhatsApp as a fallback. Staff have room, enquiry, and resident-management screens backed by API endpoints and PostgreSQL persistence. The code includes an admin login and JWT components, but the README explicitly warns that admin APIs are not yet protected. Links reflect shown calls or documented behavior; database wiring and some authentication interactions are not established by the excerpts.
Main entry points: ApiController.java REST endpoints · App.jsx Property brochure · main.jsx Page routing · ResidentService.java Resident operations
Components 26
Public website
- Property brochure
frontend/src/App.jsx - Room details
frontend/src/App.jsx - Enquiry form
frontend/src/App.jsx
Admin experience
- Page routing
frontend/src/main.jsx - Admin login
frontend/src/AdminLogin.jsx - Admin dashboard
frontend/src/Admin.jsx - Admin API client
frontend/src/services/api.js
Backend API
- REST endpoints
backend/src/main/java/com/saiiconicliv/api/ApiController.java - Resident operations
backend/src/main/java/com/saiiconicliv/api/ResidentService.java
Persistence and security
- Pricing room repository
backend/src/main/java/com/saiiconicliv/api/RoomRepository.java - Enquiry repository
backend/src/main/java/com/saiiconicliv/api/EnquiryRepository.java - Physical room repository
backend/src/main/java/com/saiiconicliv/api/PgRoomRepository.java - Resident repository
backend/src/main/java/com/saiiconicliv/api/ResidentRepository.java - Pricing room model
backend/src/main/java/com/saiiconicliv/api/Room.java - Enquiry model
backend/src/main/java/com/saiiconicliv/api/Enquiry.java - Physical room model
backend/src/main/java/com/saiiconicliv/api/PgRoom.java - Resident model
backend/src/main/java/com/saiiconicliv/api/Resident.java - JWT filter
backend/src/main/java/com/saiiconicliv/api/JwtAuthenticationFilter.java - JWT service
backend/src/main/java/com/saiiconicliv/api/JwtService.java - Authentication endpoints
backend/src/main/java/com/saiiconicliv/api/AuthController.java - Admin user repository
backend/src/main/java/com/saiiconicliv/api/AdminUserRepository.java - Admin user model
backend/src/main/java/com/saiiconicliv/api/AdminUser.java
Other components
- Visitor
- Maps directions
- PostgreSQL
Connections 30
- Visitor → Page routing: opens site
frontend/src/main.jsx - Page routing → Property brochure: routes to
frontend/src/main.jsx - Page routing → Admin login: routes to
frontend/src/main.jsx - Page routing → Admin dashboard: routes to
frontend/src/main.jsx - Property brochure → Room details: opens details
frontend/src/App.jsx - Property brochure → REST endpoints: loads room options
frontend/src/App.jsx - Enquiry form → REST endpoints: submits enquiry
frontend/src/App.jsx - Enquiry form → WhatsApp: falls back
frontend/src/App.jsx - Property brochure → WhatsApp: links contact
frontend/src/App.jsx - Property brochure → Maps directions: links directions
frontend/src/App.jsx - Admin dashboard → Admin API client: uses
frontend/src/Admin.jsx - Admin login → Admin API client: uses
frontend/src/AdminLogin.jsx - Admin API client → REST endpoints: calls API
- REST endpoints → Pricing room repository: reads and writes
backend/src/main/java/com/saiiconicliv/api/ApiController.java - REST endpoints → Enquiry repository: reads and writes
backend/src/main/java/com/saiiconicliv/api/ApiController.java - REST endpoints → Resident operations: delegates resident work
backend/src/main/java/com/saiiconicliv/api/ApiController.java - Resident operations → Physical room repository: reads and writes
backend/src/main/java/com/saiiconicliv/api/ResidentService.java - Resident operations → Resident repository: reads and writes
backend/src/main/java/com/saiiconicliv/api/ResidentService.java - Pricing room repository → Pricing room model: persists
backend/src/main/java/com/saiiconicliv/api/RoomRepository.java - Enquiry repository → Enquiry model: persists
backend/src/main/java/com/saiiconicliv/api/EnquiryRepository.java - Physical room repository → Physical room model: persists
backend/src/main/java/com/saiiconicliv/api/PgRoomRepository.java - Resident repository → Resident model: persists
backend/src/main/java/com/saiiconicliv/api/ResidentRepository.java - Pricing room repository → PostgreSQL: database access
- Enquiry repository → PostgreSQL: database access
- Physical room repository → PostgreSQL: database access
- Resident repository → PostgreSQL: database access
- JWT filter → JWT service: validates tokens
backend/src/main/java/com/saiiconicliv/api/JwtAuthenticationFilter.java - Authentication endpoints → JWT service: creates tokens
backend/src/main/java/com/saiiconicliv/api/AuthController.java - Admin user repository → Admin user model: stores
backend/src/main/java/com/saiiconicliv/api/AdminUserRepository.java - Authentication endpoints → Admin user repository: authenticates via