How elmartinipolice/gruponorus works
Grupo Norus is a hotel operations app for staff: sign in, view operational status, assign and track tasks, manage room stays, report SLA-bound incidents, attach photographic evidence, and receive alerts. The mobile app uses JWT-authenticated REST services for the Django backend; Django owns the domain records and exposes real-time notifications through Channels/WebSockets. The README documents the major backend domains and deployment stores. Some backend views and incident/evidence implementations were not sampled, so their internal call relationships are omitted rather than inferred.
Main entry points: api.js JWT API Client · index.js Role Navigation · App.js App Entry · AuthContext.js Auth Session
Components 26
Mobile App
- App Entry
frontend/App.js - Login
frontend/src/screens/auth/LoginScreen.js - Auth Session
frontend/src/context/AuthContext.js - Role Navigation
frontend/src/navigation/index.js - Task Screens
frontend/src/screens/tasks/TasksScreen.js - Task Assignment
frontend/src/screens/tasks/CreateTaskScreen.js - Room Screens
frontend/src/screens/rooms/RoomsScreen.js - Incident Screens
frontend/src/screens/incidents/IncidenciasScreen.js - Dashboard
frontend/src/screens/dashboard/DashboardScreen.js - Room Service
frontend/src/services/roomService.js - Task Service
frontend/src/services/taskService.js - Alert Context
frontend/src/context/NotificationContext.js - WebSocket Client
frontend/src/services/socket.js
API and Identity
- JWT API Client
frontend/src/services/api.js - Auth Service
frontend/src/services/authService.js - Users
backend/apps/users/models.py
Hotel Operations
- Rooms and Stays
backend/apps/rooms/models.py - Task Records
backend/apps/tasks/models.py - Incident Records
backend/apps/incidents/models.py - Operations KPIs
backend/apps/core/kpis.py
Evidence and Alerts
- Photo Evidence
backend/apps/evidence/models.py - Notification Service
backend/apps/notifications/services.py - Notification Consumer
backend/apps/notifications/consumers.py
Other components
- Hotel Staff
- MySQL / SQLite
- AWS S3
Connections 35
- Hotel Staff → App Entry: uses
- App Entry → Auth Session: mounts
frontend/App.js - App Entry → Role Navigation: shows signed-in
frontend/App.js - App Entry → Login: shows signed-out
frontend/App.js - Login → Auth Session: submits credentials
frontend/src/screens/auth/LoginScreen.js - Auth Session → Auth Service: calls
frontend/src/context/AuthContext.js - Auth Service → JWT API Client: sends requests
frontend/src/services/authService.js - JWT API Client → Users: authenticates JWT
- Role Navigation → Task Screens: routes to
frontend/src/navigation/index.js - Role Navigation → Room Screens: routes to
frontend/src/navigation/index.js - Role Navigation → Incident Screens: routes to
frontend/src/navigation/index.js - Role Navigation → Dashboard: routes to
frontend/src/navigation/index.js - Task Screens → Task Service: loads tasks
frontend/src/screens/tasks/TasksScreen.js - Task Assignment → Task Service: creates task
frontend/src/screens/tasks/CreateTaskScreen.js - Task Assignment → Room Service: loads rooms
frontend/src/screens/tasks/CreateTaskScreen.js - Task Service → JWT API Client: sends requests
frontend/src/services/taskService.js - Room Screens → Room Service: uses
- Room Service → JWT API Client: sends requests
frontend/src/services/roomService.js - Incident Screens → JWT API Client: uses incident API
- JWT API Client → Task Records: requests task data
- JWT API Client → Rooms and Stays: requests room data
- JWT API Client → Incident Records: requests incidents
- Operations KPIs → Task Records: reads
backend/apps/core/kpis.py - Operations KPIs → Rooms and Stays: reads
backend/apps/core/kpis.py - Operations KPIs → Incident Records: reads
backend/apps/core/kpis.py - Photo Evidence → AWS S3: stores photos
- Auth Session → Alert Context: provides user
frontend/src/context/NotificationContext.js - Alert Context → WebSocket Client: opens connection
frontend/src/context/NotificationContext.js - Alert Context → JWT API Client: loads and marks alerts
frontend/src/context/NotificationContext.js - WebSocket Client → Notification Consumer: receives live events
- Notification Consumer → Notification Service: uses notification records
- MySQL / SQLite → Users: persists
- MySQL / SQLite → Rooms and Stays: persists
- MySQL / SQLite → Task Records: persists
- MySQL / SQLite → Incident Records: persists