# cheetah7027/ese-target architecture

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

- Interactive diagram: https://gitdiagram.com/cheetah7027/ese-target
- Repository: https://github.com/cheetah7027/ese-target

## Overview

This is an ESE Civil Engineering 2027 preparation planner, despite the README still describing a generic React/Vite template. The main workflow is to set preparation goals, navigate syllabus and planning views, log study and exam practice, then review progress and scheduled revisions. AppContext coordinates shared study data and actions; the sampled source shows profile synchronization with optional Supabase. Several page modules are represented from the tree and App routing, but their internal behavior and data wiring were not sampled.

Main entry points: [`src/App.jsx`](https://github.com/cheetah7027/ese-target/blob/main/src/App.jsx) (App routing), [`src/context/AppContext.jsx`](https://github.com/cheetah7027/ese-target/blob/main/src/context/AppContext.jsx) (App state and actions), [`src/components/layout/Sidebar.jsx`](https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/Sidebar.jsx) (Navigation), [`src/components/layout/MobileNavbar.jsx`](https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/MobileNavbar.jsx) (Mobile navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_app["App routing<br/>[App.jsx]"]
  node_navigation["Navigation<br/>[Sidebar.jsx]"]
  node_mobile_navigation["Mobile navigation<br/>[MobileNavbar.jsx]"]
  node_onboarding["Plan setup"]
  node_auth["Profile sign-in<br/>[LoginScreen.jsx]"]
end

subgraph group_planning["Syllabus and planning"]
  node_subjects["Subjects<br/>[Subjects.jsx]"]
  node_subject_detail["Subject detail<br/>[SubjectDetail.jsx]"]
  node_chapters["Chapters<br/>[Chapters.jsx]"]
  node_roadmap["Roadmap<br/>[Roadmap.jsx]"]
  node_smart_plan["Smart plan<br/>[SmartPlan.jsx]"]
end

subgraph group_practice["Practice and revision"]
  node_quick_add["Quick logging<br/>[QuickAddModal.jsx]"]
  node_pyq["PYQ tracker<br/>[PYQTracker.jsx]"]
  node_mock_tests["Mock tests<br/>[MockTests.jsx]"]
  node_mistakes["Mistake log<br/>[MistakeLog.jsx]"]
  node_revision["Revision engine<br/>[RevisionEngine.jsx]"]
  node_paper1["Paper 1 tracker<br/>[Paper1Tracker.jsx]"]
  node_mains["Mains practice<br/>[MainsMode.jsx]"]
  node_timer["Focus timer"]
end

subgraph group_progress["Progress and preferences"]
  node_dashboard["Dashboard<br/>[Dashboard.jsx]"]
  node_analytics["Analytics<br/>[Analytics.jsx]"]
  node_settings["Settings<br/>[Settings.jsx]"]
  node_user_management["User profiles<br/>[UserManagement.jsx]"]
end

subgraph group_state["Shared state and services"]
  node_context["App state and actions<br/>[AppContext.jsx]"]
  node_seed_data["Exam seed data<br/>[initialData.js]"]
  node_browser_storage[("Browser storage<br/>[AppContext.jsx]")]
  node_supabase_adapter["Supabase profile sync<br/>[supabase.js]"]
end

node_aspirant(("Aspirant"))
node_supabase[("Supabase service")]

node_aspirant -->|"uses"| node_app
node_app -->|"provides state"| node_context
node_app -->|"renders"| node_navigation
node_app -->|"renders"| node_mobile_navigation
node_app -->|"renders"| node_onboarding
node_app -->|"renders when signed out"| node_auth
node_navigation -->|"selects views"| node_app
node_mobile_navigation -->|"selects views"| node_app
node_onboarding -->|"updates settings"| node_context
node_auth -->|"selects profile"| node_context
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_subjects
node_app -->|"routes to"| node_subject_detail
node_app -->|"routes to"| node_chapters
node_app -->|"routes to"| node_roadmap
node_app -->|"routes to"| node_smart_plan
node_app -->|"opens"| node_quick_add
node_app -->|"opens"| node_timer
node_app -->|"routes to"| node_pyq
node_app -->|"routes to"| node_mock_tests
node_app -->|"routes to"| node_mistakes
node_app -->|"routes to"| node_revision
node_app -->|"routes to"| node_paper1
node_app -->|"routes to"| node_mains
node_app -->|"routes to"| node_analytics
node_app -->|"routes to"| node_settings
node_app -->|"routes to"| node_user_management
node_context -->|"initializes from"| node_seed_data
node_context -->|"reads and writes"| node_browser_storage
node_quick_add -->|"records activity"| node_context
node_timer -->|"controls timer; logs session"| node_context
node_revision -->|"completes or snoozes"| node_context
node_dashboard -->|"reads study state"| node_context
node_analytics -->|"reads study state"| node_context
node_context -->|"syncs profiles"| node_supabase_adapter
node_supabase_adapter -.->|"reads and upserts profiles"| node_supabase

click node_app "https://github.com/cheetah7027/ese-target/blob/main/src/App.jsx"
click node_navigation "https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/Sidebar.jsx"
click node_mobile_navigation "https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/MobileNavbar.jsx"
click node_onboarding "https://github.com/cheetah7027/ese-target/blob/main/src/components/onboarding/OnboardingWizard.jsx"
click node_subjects "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Subjects.jsx"
click node_subject_detail "https://github.com/cheetah7027/ese-target/blob/main/src/pages/SubjectDetail.jsx"
click node_chapters "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Chapters.jsx"
click node_roadmap "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Roadmap.jsx"
click node_smart_plan "https://github.com/cheetah7027/ese-target/blob/main/src/pages/SmartPlan.jsx"
click node_dashboard "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Dashboard.jsx"
click node_quick_add "https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/QuickAddModal.jsx"
click node_pyq "https://github.com/cheetah7027/ese-target/blob/main/src/pages/PYQTracker.jsx"
click node_mock_tests "https://github.com/cheetah7027/ese-target/blob/main/src/pages/MockTests.jsx"
click node_mistakes "https://github.com/cheetah7027/ese-target/blob/main/src/pages/MistakeLog.jsx"
click node_revision "https://github.com/cheetah7027/ese-target/blob/main/src/pages/RevisionEngine.jsx"
click node_paper1 "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Paper1Tracker.jsx"
click node_mains "https://github.com/cheetah7027/ese-target/blob/main/src/pages/MainsMode.jsx"
click node_timer "https://github.com/cheetah7027/ese-target/blob/main/src/components/timer/PomodoroTimerModal.jsx"
click node_analytics "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Analytics.jsx"
click node_settings "https://github.com/cheetah7027/ese-target/blob/main/src/pages/Settings.jsx"
click node_user_management "https://github.com/cheetah7027/ese-target/blob/main/src/pages/UserManagement.jsx"
click node_auth "https://github.com/cheetah7027/ese-target/blob/main/src/components/auth/LoginScreen.jsx"
click node_context "https://github.com/cheetah7027/ese-target/blob/main/src/context/AppContext.jsx"
click node_seed_data "https://github.com/cheetah7027/ese-target/blob/main/src/data/initialData.js"
click node_browser_storage "https://github.com/cheetah7027/ese-target/blob/main/src/context/AppContext.jsx"
click node_supabase_adapter "https://github.com/cheetah7027/ese-target/blob/main/src/lib/supabase.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_navigation,node_mobile_navigation,node_onboarding,node_auth toneBlue
class node_subjects,node_subject_detail,node_chapters,node_roadmap,node_smart_plan,node_supabase toneAmber
class node_quick_add,node_pyq,node_mock_tests,node_mistakes,node_revision,node_paper1,node_mains,node_timer toneMint
class node_dashboard,node_analytics,node_settings,node_user_management toneRose
class node_context,node_seed_data,node_browser_storage,node_supabase_adapter,node_aspirant toneIndigo
```

## Components

### Application shell

- [App routing](https://github.com/cheetah7027/ese-target/blob/main/src/App.jsx): `src/App.jsx`
- [Navigation](https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/Sidebar.jsx): `src/components/layout/Sidebar.jsx`
- [Mobile navigation](https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/MobileNavbar.jsx): `src/components/layout/MobileNavbar.jsx`
- [Plan setup](https://github.com/cheetah7027/ese-target/blob/main/src/components/onboarding/OnboardingWizard.jsx): `src/components/onboarding/OnboardingWizard.jsx`
- [Profile sign-in](https://github.com/cheetah7027/ese-target/blob/main/src/components/auth/LoginScreen.jsx): `src/components/auth/LoginScreen.jsx`

### Syllabus and planning

- [Subjects](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Subjects.jsx): `src/pages/Subjects.jsx`
- [Subject detail](https://github.com/cheetah7027/ese-target/blob/main/src/pages/SubjectDetail.jsx): `src/pages/SubjectDetail.jsx`
- [Chapters](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Chapters.jsx): `src/pages/Chapters.jsx`
- [Roadmap](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Roadmap.jsx): `src/pages/Roadmap.jsx`
- [Smart plan](https://github.com/cheetah7027/ese-target/blob/main/src/pages/SmartPlan.jsx): `src/pages/SmartPlan.jsx`

### Practice and revision

- [Quick logging](https://github.com/cheetah7027/ese-target/blob/main/src/components/layout/QuickAddModal.jsx): `src/components/layout/QuickAddModal.jsx`
- [PYQ tracker](https://github.com/cheetah7027/ese-target/blob/main/src/pages/PYQTracker.jsx): `src/pages/PYQTracker.jsx`
- [Mock tests](https://github.com/cheetah7027/ese-target/blob/main/src/pages/MockTests.jsx): `src/pages/MockTests.jsx`
- [Mistake log](https://github.com/cheetah7027/ese-target/blob/main/src/pages/MistakeLog.jsx): `src/pages/MistakeLog.jsx`
- [Revision engine](https://github.com/cheetah7027/ese-target/blob/main/src/pages/RevisionEngine.jsx): `src/pages/RevisionEngine.jsx`
- [Paper 1 tracker](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Paper1Tracker.jsx): `src/pages/Paper1Tracker.jsx`
- [Mains practice](https://github.com/cheetah7027/ese-target/blob/main/src/pages/MainsMode.jsx): `src/pages/MainsMode.jsx`
- [Focus timer](https://github.com/cheetah7027/ese-target/blob/main/src/components/timer/PomodoroTimerModal.jsx): `src/components/timer/PomodoroTimerModal.jsx`

### Progress and preferences

- [Dashboard](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Dashboard.jsx): `src/pages/Dashboard.jsx`
- [Analytics](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Analytics.jsx): `src/pages/Analytics.jsx`
- [Settings](https://github.com/cheetah7027/ese-target/blob/main/src/pages/Settings.jsx): `src/pages/Settings.jsx`
- [User profiles](https://github.com/cheetah7027/ese-target/blob/main/src/pages/UserManagement.jsx): `src/pages/UserManagement.jsx`

### Shared state and services

- [App state and actions](https://github.com/cheetah7027/ese-target/blob/main/src/context/AppContext.jsx): `src/context/AppContext.jsx`
- [Exam seed data](https://github.com/cheetah7027/ese-target/blob/main/src/data/initialData.js): `src/data/initialData.js`
- [Browser storage](https://github.com/cheetah7027/ese-target/blob/main/src/context/AppContext.jsx): `src/context/AppContext.jsx`
- [Supabase profile sync](https://github.com/cheetah7027/ese-target/blob/main/src/lib/supabase.js): `src/lib/supabase.js`

### Other components

- **Aspirant**
- **Supabase service**

## Connections

- Aspirant → App routing: uses
- App routing → App state and actions: provides state
- App routing → Navigation: renders
- App routing → Mobile navigation: renders
- App routing → Plan setup: renders
- App routing → Profile sign-in: renders when signed out
- Navigation → App routing: selects views
- Mobile navigation → App routing: selects views
- Plan setup → App state and actions: updates settings
- Profile sign-in → App state and actions: selects profile
- App routing → Dashboard: routes to
- App routing → Subjects: routes to
- App routing → Subject detail: routes to
- App routing → Chapters: routes to
- App routing → Roadmap: routes to
- App routing → Smart plan: routes to
- App routing → Quick logging: opens
- App routing → Focus timer: opens
- App routing → PYQ tracker: routes to
- App routing → Mock tests: routes to
- App routing → Mistake log: routes to
- App routing → Revision engine: routes to
- App routing → Paper 1 tracker: routes to
- App routing → Mains practice: routes to
- App routing → Analytics: routes to
- App routing → Settings: routes to
- App routing → User profiles: routes to
- App state and actions → Exam seed data: initializes from
- App state and actions → Browser storage: reads and writes
- Quick logging → App state and actions: records activity
- Focus timer → App state and actions: controls timer; logs session
- Revision engine → App state and actions: completes or snoozes
- Dashboard → App state and actions: reads study state
- Analytics → App state and actions: reads study state
- App state and actions → Supabase profile sync: syncs profiles
- Supabase profile sync → Supabase service: reads and upserts profiles
