# novix-mb/novix- architecture

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

- Interactive diagram: https://gitdiagram.com/novix-mb/novix-
- Repository: https://github.com/novix-mb/novix-

## Overview

NOVIX is a browser-based study workspace. The documented user journey starts at Home and branches into library, planning, note-taking, and focus tools; data is described as staying on the device. The README also documents a coming-soon Simulations section. The sampled service worker implements offline caching and background reminders. Since index.html was not sampled, feature paths and links are based on README descriptions, not inspected implementation; the reminder and cache behavior is supported by sw.js.

Main entry points: [`index.html`](https://github.com/novix-mb/novix-/blob/main/index.html) (Home), [`sw.js`](https://github.com/novix-mb/novix-/blob/main/sw.js) (Service worker), [`assets/audio`](https://github.com/novix-mb/novix-/tree/main/assets/audio) (Focus audio)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Study workspace"]
  node_home["Home<br/>[index.html]"]
  node_settings["Settings<br/>[index.html]"]
  node_about["About<br/>[index.html]"]
end

subgraph group_study_tools["Study tools"]
  node_library["Library<br/>[index.html]"]
  node_pdf_reader["PDF reader<br/>[index.html]"]
  node_page_annotations["Page annotations<br/>[index.html]"]
  node_tasks["Tasks<br/>[index.html]"]
  node_notes["Notes<br/>[index.html]"]
  node_timetable["Timetable<br/>[index.html]"]
  node_focus_timer["Focus timer<br/>[index.html]"]
  node_focus_audio["Focus audio"]
  node_smart_board["Smart board<br/>[index.html]"]
  node_simulations["Simulations<br/>[index.html]"]
end

subgraph group_runtime["Offline and reminders"]
  node_service_worker["Service worker<br/>[sw.js]"]
  node_cache[("Offline cache<br/>[sw.js]")]
  node_reminder_schedule[("Reminder schedule<br/>[sw.js]")]
  node_notifications["Notifications<br/>[sw.js]"]
end

node_student(("Student"))
node_operating_system["Browser and OS"]

node_student -->|"opens"| node_home
node_home -->|"navigates to"| node_library
node_home -->|"navigates to"| node_tasks
node_home -->|"navigates to"| node_notes
node_home -->|"navigates to"| node_timetable
node_home -->|"navigates to"| node_focus_timer
node_home -->|"navigates to"| node_smart_board
node_home -->|"navigates to"| node_simulations
node_library -->|"opens PDFs"| node_pdf_reader
node_pdf_reader -->|"supports markup"| node_page_annotations
node_timetable -.->|"requests reminders"| node_notifications
node_focus_timer -->|"plays sounds"| node_focus_audio
node_student -->|"customizes"| node_settings
node_student -->|"views"| node_about
node_service_worker -->|"reads and writes"| node_cache
node_service_worker -->|"reads and writes"| node_reminder_schedule
node_service_worker -->|"shows"| node_notifications
node_operating_system -->|"wakes"| node_service_worker
node_service_worker -->|"opens or focuses"| node_operating_system

click node_home "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_library "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_pdf_reader "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_page_annotations "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_tasks "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_notes "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_timetable "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_focus_timer "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_focus_audio "https://github.com/novix-mb/novix-/tree/main/assets/audio"
click node_smart_board "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_simulations "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_settings "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_about "https://github.com/novix-mb/novix-/blob/main/index.html"
click node_service_worker "https://github.com/novix-mb/novix-/blob/main/sw.js"
click node_cache "https://github.com/novix-mb/novix-/blob/main/sw.js"
click node_reminder_schedule "https://github.com/novix-mb/novix-/blob/main/sw.js"
click node_notifications "https://github.com/novix-mb/novix-/blob/main/sw.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_home,node_settings,node_about,node_operating_system toneBlue
class node_library,node_pdf_reader,node_page_annotations,node_tasks,node_notes,node_timetable,node_focus_timer,node_focus_audio,node_smart_board,node_simulations toneAmber
class node_service_worker,node_cache,node_reminder_schedule,node_notifications toneMint
class node_student toneIndigo
```

## Components

### Study workspace

- [Home](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Settings](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [About](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`

### Study tools

- [Library](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [PDF reader](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Page annotations](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Tasks](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Notes](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Timetable](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Focus timer](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Focus audio](https://github.com/novix-mb/novix-/tree/main/assets/audio): `assets/audio`
- [Smart board](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`
- [Simulations](https://github.com/novix-mb/novix-/blob/main/index.html): `index.html`

### Offline and reminders

- [Service worker](https://github.com/novix-mb/novix-/blob/main/sw.js): `sw.js`
- [Offline cache](https://github.com/novix-mb/novix-/blob/main/sw.js): `sw.js`
- [Reminder schedule](https://github.com/novix-mb/novix-/blob/main/sw.js): `sw.js`
- [Notifications](https://github.com/novix-mb/novix-/blob/main/sw.js): `sw.js`

### Other components

- **Student**
- **Browser and OS**

## Connections

- Student → Home: opens (evidence: `README.md`)
- Home → Library: navigates to (evidence: `README.md`)
- Home → Tasks: navigates to (evidence: `README.md`)
- Home → Notes: navigates to (evidence: `README.md`)
- Home → Timetable: navigates to (evidence: `README.md`)
- Home → Focus timer: navigates to (evidence: `README.md`)
- Home → Smart board: navigates to (evidence: `README.md`)
- Home → Simulations: navigates to (evidence: `README.md`)
- Library → PDF reader: opens PDFs (evidence: `README.md`)
- PDF reader → Page annotations: supports markup (evidence: `README.md`)
- Timetable → Notifications: requests reminders
- Focus timer → Focus audio: plays sounds (evidence: `README.md`)
- Student → Settings: customizes (evidence: `README.md`)
- Student → About: views (evidence: `README.md`)
- Service worker → Offline cache: reads and writes (evidence: `sw.js`)
- Service worker → Reminder schedule: reads and writes (evidence: `sw.js`)
- Service worker → Notifications: shows (evidence: `sw.js`)
- Browser and OS → Service worker: wakes (evidence: `sw.js`)
- Service worker → Browser and OS: opens or focuses (evidence: `sw.js`)
