# monu-here/mobile-app architecture

> Architecture diagram of the GitHub repository monu-here/mobile-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/monu-here/mobile-app
- Repository: https://github.com/monu-here/mobile-app

## Overview

SchoolApp Mobile is a React Native school-management app. Its main flow checks onboarding and saved authentication state, then presents onboarding, login, or the authenticated home area; users can navigate into school settings, academic/exam tools, and operational records. Screens use a shared API service for backend operations, while local storage persists onboarding and user credentials. The sampled code confirms app-level auth checks, route CRUD, and notice/exam features, but does not expose every screen’s API wiring.

Main entry points: [`App.js`](https://github.com/monu-here/mobile-app/blob/main/App.js) (App state and navigation), [`src/screens/SettingsListScreen.js`](https://github.com/monu-here/mobile-app/blob/main/src/screens/SettingsListScreen.js) (Settings catalog), [`src/api/apiService.js`](https://github.com/monu-here/mobile-app/blob/main/src/api/apiService.js) (API service), [`src/screens`](https://github.com/monu-here/mobile-app/tree/main/src/screens) (School reference data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and access"]
  node_app["App state and navigation<br/>[App.js]"]
  node_onboarding["Onboarding"]
  node_login["Login<br/>[LoginScreen.js]"]
  node_home["Home dashboard<br/>[HomeScreen.js]"]
  node_profile["Profile<br/>[ProfileScreen.js]"]
end

subgraph group_school["School settings"]
  node_school_settings["School settings"]
  node_settings_list["Settings catalog"]
  node_school_records["School reference data"]
end

subgraph group_academics["Academic operations"]
  node_exam_tools["Exam management"]
  node_calendar_schedule["Calendar and schedule"]
  node_attendance["Attendance"]
  node_results["Grades and results"]
end

subgraph group_operations["School operations"]
  node_notices_posts["Notices and posts"]
  node_staff["Staff management"]
end

subgraph group_infra["Shared services"]
  node_api["API service<br/>[apiService.js]"]
  node_api_config["API endpoints<br/>[config.js]"]
  node_storage[("Local persistence<br/>[storage.js]")]
  node_toast["Toast feedback<br/>[Toast.js]"]
end

node_user(("School user"))
node_backend{{"School backend"}}
node_push{{"Push notification service"}}

node_user -->|"uses"| node_app
node_app -->|"shows"| node_onboarding
node_app -->|"shows"| node_login
node_app -->|"shows"| node_home
node_app -->|"shows"| node_profile
node_app -->|"shows"| node_school_settings
node_app -->|"shows"| node_settings_list
node_app -->|"reads and writes"| node_storage
node_app -->|"checks authentication"| node_api
node_app -->|"subscribes device"| node_api
node_api -->|"uses endpoints"| node_api_config
node_api -->|"sends requests"| node_backend
node_app -.->|"registers token"| node_push
node_school_settings -->|"opens settings"| node_school_records
node_settings_list -->|"opens records"| node_school_records
node_settings_list -->|"opens exams"| node_exam_tools
node_settings_list -->|"opens calendar"| node_calendar_schedule
node_settings_list -->|"opens attendance"| node_attendance
node_settings_list -->|"opens results"| node_results
node_settings_list -->|"opens notices"| node_notices_posts
node_settings_list -->|"opens staff"| node_staff
node_exam_tools -->|"requests exam data"| node_api
node_notices_posts -->|"requests notice data"| node_api
node_staff -->|"requests staff data"| node_api
node_school_records -->|"requests records"| node_api
node_home -->|"shows feedback"| node_toast

click node_app "https://github.com/monu-here/mobile-app/blob/main/App.js"
click node_onboarding "https://github.com/monu-here/mobile-app/blob/main/src/screens/OnboardingScreen.js"
click node_login "https://github.com/monu-here/mobile-app/blob/main/src/screens/LoginScreen.js"
click node_home "https://github.com/monu-here/mobile-app/blob/main/src/screens/HomeScreen.js"
click node_profile "https://github.com/monu-here/mobile-app/blob/main/src/screens/ProfileScreen.js"
click node_school_settings "https://github.com/monu-here/mobile-app/blob/main/src/screens/SchoolSettingsScreen.js"
click node_settings_list "https://github.com/monu-here/mobile-app/blob/main/src/screens/SettingsListScreen.js"
click node_school_records "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_exam_tools "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_calendar_schedule "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_attendance "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_results "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_notices_posts "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_staff "https://github.com/monu-here/mobile-app/tree/main/src/screens"
click node_api "https://github.com/monu-here/mobile-app/blob/main/src/api/apiService.js"
click node_api_config "https://github.com/monu-here/mobile-app/blob/main/src/api/config.js"
click node_storage "https://github.com/monu-here/mobile-app/blob/main/src/utils/storage.js"
click node_toast "https://github.com/monu-here/mobile-app/blob/main/src/components/Toast.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_onboarding,node_login,node_home,node_profile,node_user toneBlue
class node_school_settings,node_settings_list,node_school_records toneAmber
class node_exam_tools,node_calendar_schedule,node_attendance,node_results toneMint
class node_notices_posts,node_staff toneRose
class node_api,node_api_config,node_storage,node_toast,node_backend,node_push toneIndigo
```

## Components

### App and access

- [App state and navigation](https://github.com/monu-here/mobile-app/blob/main/App.js): `App.js`
- [Onboarding](https://github.com/monu-here/mobile-app/blob/main/src/screens/OnboardingScreen.js): `src/screens/OnboardingScreen.js`
- [Login](https://github.com/monu-here/mobile-app/blob/main/src/screens/LoginScreen.js): `src/screens/LoginScreen.js`
- [Home dashboard](https://github.com/monu-here/mobile-app/blob/main/src/screens/HomeScreen.js): `src/screens/HomeScreen.js`
- [Profile](https://github.com/monu-here/mobile-app/blob/main/src/screens/ProfileScreen.js): `src/screens/ProfileScreen.js`

### School settings

- [School settings](https://github.com/monu-here/mobile-app/blob/main/src/screens/SchoolSettingsScreen.js): `src/screens/SchoolSettingsScreen.js`
- [Settings catalog](https://github.com/monu-here/mobile-app/blob/main/src/screens/SettingsListScreen.js): `src/screens/SettingsListScreen.js`
- [School reference data](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`

### Academic operations

- [Exam management](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`
- [Calendar and schedule](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`
- [Attendance](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`
- [Grades and results](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`

### School operations

- [Notices and posts](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`
- [Staff management](https://github.com/monu-here/mobile-app/tree/main/src/screens): `src/screens`

### Shared services

- [API service](https://github.com/monu-here/mobile-app/blob/main/src/api/apiService.js): `src/api/apiService.js`
- [API endpoints](https://github.com/monu-here/mobile-app/blob/main/src/api/config.js): `src/api/config.js`
- [Local persistence](https://github.com/monu-here/mobile-app/blob/main/src/utils/storage.js): `src/utils/storage.js`
- [Toast feedback](https://github.com/monu-here/mobile-app/blob/main/src/components/Toast.js): `src/components/Toast.js`

### Other components

- **School user**
- **School backend**
- **Push notification service**

## Connections

- School user → App state and navigation: uses
- App state and navigation → Onboarding: shows
- App state and navigation → Login: shows
- App state and navigation → Home dashboard: shows
- App state and navigation → Profile: shows
- App state and navigation → School settings: shows
- App state and navigation → Settings catalog: shows
- App state and navigation → Local persistence: reads and writes
- App state and navigation → API service: checks authentication
- App state and navigation → API service: subscribes device
- API service → API endpoints: uses endpoints
- API service → School backend: sends requests
- App state and navigation → Push notification service: registers token
- School settings → School reference data: opens settings
- Settings catalog → School reference data: opens records
- Settings catalog → Exam management: opens exams
- Settings catalog → Calendar and schedule: opens calendar
- Settings catalog → Attendance: opens attendance
- Settings catalog → Grades and results: opens results
- Settings catalog → Notices and posts: opens notices
- Settings catalog → Staff management: opens staff
- Exam management → API service: requests exam data
- Notices and posts → API service: requests notice data
- Staff management → API service: requests staff data
- School reference data → API service: requests records
- Home dashboard → Toast feedback: shows feedback
