How fooxo-jpg/siranaba works
SiraNaBa is a facility portal with tenant self-service and role-gated administration. Tenants sign in, view building and account information, submit and track maintenance requests, manage bills and payments, and receive notifications; administrators manage tenants, staff, billing, and ticket dispatch. The React app calls a Spring Boot API backed by MongoDB. Gemini-assisted ticket triage is documented, but its precise caller wiring is only partly evidenced by the sampled source. The remaining admin screens use local mock data. Backend wiring for unsampled controllers and services is not expanded.
Main entry points: App.jsx Route and role gates · client.js HTTP client · endpoints.js API endpoints · admin Admin screens
Components 22
Portal experience
- Route and role gates
src/App.jsx - Tenant screens
src/pages - Admin screens
src/pages/admin - Session context
src/context/SessionContext.jsx - Tenant registry
src/context/TenantRegistryContext.jsx - Local admin data
src/data/adminMockDb.js
API access
- API endpoints
src/api/endpoints.js - HTTP client
src/api/client.js
Identity and access
- Authentication API
server/src/main/java/com/siranaba/backend/controller/AuthController.java - Authentication service
server/src/main/java/com/siranaba/backend/service/AuthService.java - JWT handling
server/src/main/java/com/siranaba/backend/security/JwtService.java
Facility operations
- Tenant management API
server/src/main/java/com/siranaba/backend/controller/AdminTenantController.java - Tenant administration
server/src/main/java/com/siranaba/backend/service/AdminTenantService.java - Billing service
server/src/main/java/com/siranaba/backend/service/BillingService.java - AI ticket triage
server/src/main/java/com/siranaba/backend/service/GeminiTriageService.java - Ticket operations
server/src/main/java/com/siranaba/backend/controller/TicketController.java - Admin operations
server/src/main/java/com/siranaba/backend/controller/AdminTicketController.java
Persistent records
- User records
server/src/main/java/com/siranaba/backend/repository/UserRepository.java - MongoDB
Other components
- Tenant
- Administrator
- Google Gemini
Connections 25
- Tenant → Route and role gates: uses portal
- Administrator → Route and role gates: uses portal
- Route and role gates → Session context: checks session
- Route and role gates → Tenant screens: routes tenant
- Route and role gates → Admin screens: routes admin
- Tenant screens → API endpoints: requests data
- Admin screens → API endpoints: requests data
- Admin screens → Local admin data: reads mock data
- Session context → API endpoints: loads profile
- Tenant registry → API endpoints: fetches tenant data
- API endpoints → HTTP client: calls helpers
- HTTP client → Authentication API: sends API requests
- Authentication API → Authentication service: calls
- Authentication service → User records: reads and saves
- Authentication service → JWT handling: generates token
- Tenant screens → HTTP client: calls API
- Admin screens → HTTP client: calls API
- HTTP client → Tenant management API: sends admin requests
- Tenant management API → Tenant administration: delegates tenant work
- Tenant administration → MongoDB: reads and writes
- Billing service → MongoDB: reads and writes
- Ticket operations → AI ticket triage: triages submissions
- AI ticket triage → Google Gemini: requests assessment
- Ticket operations → MongoDB: ticket persistence
- Admin operations → MongoDB: admin ticket data