# romstab/reminders-dashboard architecture

> Architecture diagram of the GitHub repository romstab/reminders-dashboard, 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/romstab/reminders-dashboard
- Repository: https://github.com/romstab/reminders-dashboard

## Overview

This is a BSCS 1-A section hub and reviewer-game web app, with Firebase-backed features and three Gemini AI services. The principal user journey is using the hub to find section information and reminders, or entering the Reviewer Arena to practice and record scores. The sampled code confirms several Firebase writes and the Hub AI’s public-data retrieval; other feature paths and client-to-API wiring are documented or implied by endpoint descriptions but were not sampled, so those connections are omitted.

Main entry points: [`index.html`](https://github.com/romstab/reminders-dashboard/blob/main/index.html) (Section hub), [`api/hub-chat.js`](https://github.com/romstab/reminders-dashboard/blob/main/api/hub-chat.js) (Website-aware assistant), [`game.js`](https://github.com/romstab/reminders-dashboard/blob/main/game.js) (Reviewer Arena), [`api/parse-pio-reminders.js`](https://github.com/romstab/reminders-dashboard/blob/main/api/parse-pio-reminders.js) (Reminder structuring)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Hub experience"]
  node_app["Section hub<br/>[index.html]"]
  node_dashboard["Reminders dashboard<br/>[dashboard.html]"]
  node_updates["Updates and resources<br/>[game.js]"]
end

subgraph group_learning["Learning tools"]
  node_arena["Reviewer Arena<br/>[game.js]"]
  node_questionbank[("Question bank<br/>[game.js]")]
end

subgraph group_ai["AI services"]
  node_reminderai["Reminder structuring"]
  node_questionai["Question generation<br/>[rqa-generate.js]"]
  node_hubai["Website-aware assistant<br/>[hub-chat.js]"]
end

subgraph group_data["Cloud data"]
  node_firebase[("Firebase Realtime Database")]
end

node_user(("Section member"))
node_gemini{{"Google Gemini"}}

node_user -->|"uses"| node_app
node_app -->|"opens"| node_dashboard
node_app -->|"opens"| node_arena
node_arena -->|"writes scores"| node_firebase
node_app -->|"writes hub data"| node_firebase
node_hubai -->|"reads public data"| node_firebase
node_reminderai -->|"generates structure"| node_gemini
node_questionai -->|"generates questions"| node_gemini
node_hubai -->|"generates answers"| node_gemini

click node_app "https://github.com/romstab/reminders-dashboard/blob/main/index.html"
click node_dashboard "https://github.com/romstab/reminders-dashboard/blob/main/dashboard.html"
click node_updates "https://github.com/romstab/reminders-dashboard/blob/main/game.js"
click node_arena "https://github.com/romstab/reminders-dashboard/blob/main/game.js"
click node_questionbank "https://github.com/romstab/reminders-dashboard/blob/main/game.js"
click node_reminderai "https://github.com/romstab/reminders-dashboard/blob/main/api/parse-pio-reminders.js"
click node_questionai "https://github.com/romstab/reminders-dashboard/blob/main/api/rqa-generate.js"
click node_hubai "https://github.com/romstab/reminders-dashboard/blob/main/api/hub-chat.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_dashboard,node_updates toneBlue
class node_arena,node_questionbank toneAmber
class node_reminderai,node_questionai,node_hubai toneMint
class node_firebase toneRose
class node_user,node_gemini toneIndigo
```

## Components

### Hub experience

- [Section hub](https://github.com/romstab/reminders-dashboard/blob/main/index.html): `index.html`
- [Reminders dashboard](https://github.com/romstab/reminders-dashboard/blob/main/dashboard.html): `dashboard.html`
- [Updates and resources](https://github.com/romstab/reminders-dashboard/blob/main/game.js): `game.js`

### Learning tools

- [Reviewer Arena](https://github.com/romstab/reminders-dashboard/blob/main/game.js): `game.js`
- [Question bank](https://github.com/romstab/reminders-dashboard/blob/main/game.js): `game.js`

### AI services

- [Reminder structuring](https://github.com/romstab/reminders-dashboard/blob/main/api/parse-pio-reminders.js): `api/parse-pio-reminders.js`
- [Question generation](https://github.com/romstab/reminders-dashboard/blob/main/api/rqa-generate.js): `api/rqa-generate.js`
- [Website-aware assistant](https://github.com/romstab/reminders-dashboard/blob/main/api/hub-chat.js): `api/hub-chat.js`

### Cloud data

- **Firebase Realtime Database**

### Other components

- **Section member**
- **Google Gemini**

## Connections

- Section member → Section hub: uses
- Section hub → Reminders dashboard: opens
- Section hub → Reviewer Arena: opens
- Reviewer Arena → Firebase Realtime Database: writes scores
- Section hub → Firebase Realtime Database: writes hub data
- Website-aware assistant → Firebase Realtime Database: reads public data
- Reminder structuring → Google Gemini: generates structure
- Question generation → Google Gemini: generates questions
- Website-aware assistant → Google Gemini: generates answers
