# stanlleyzagath/showtime architecture

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

- Interactive diagram: https://gitdiagram.com/stanlleyzagath/showtime
- Repository: https://github.com/stanlleyzagath/showtime

## Overview

Show Time is a browser-based personal tracker for series and films. Users manage titles and viewing progress, then browse recommendations and title details; their lists stay in browser storage, with file backup/import and optional Firebase sync. The README documents the main capabilities and data sources, while the available source excerpts cover only service-worker caching and a placeholder Firebase configuration—not the application implementation in index.html. Accordingly, feature nodes point to that tree path, and documented relationships cite the README.

Main entry points: [`index.html`](https://github.com/stanlleyzagath/showtime/blob/main/index.html) (Show Time app), [`sw.js`](https://github.com/stanlleyzagath/showtime/blob/main/sw.js) (Offline cache), [`firebase-config.js`](https://github.com/stanlleyzagath/showtime/blob/main/firebase-config.js) (Firebase)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Tracking experience"]
  node_app["Show Time app<br/>[index.html]"]
  node_series["Series tracking<br/>[index.html]"]
  node_films["Film lists<br/>[index.html]"]
  node_home["Home dashboard<br/>[index.html]"]
  node_filters["Filters and sorting<br/>[index.html]"]
  node_calendar["Episode calendar<br/>[index.html]"]
end

subgraph group_discovery["Discovery and details"]
  node_explore["Explore titles<br/>[index.html]"]
  node_titleinfo["Title details<br/>[index.html]"]
  node_tvmaze["TVmaze"]
  node_tmdb["TMDB"]
  node_omdb["OMDb"]
end

subgraph group_data["User data"]
  node_storage[("Browser storage<br/>[index.html]")]
  node_backup["Backup import/export<br/>[index.html]"]
  node_tvtime["TV Time import<br/>[index.html]"]
  node_sync["Cloud sync<br/>[index.html]"]
  node_firebase["Firebase<br/>[firebase-config.js]"]
end

subgraph group_platform["Browser platform"]
  node_browser(("Browser"))
  node_worker["Offline cache<br/>[sw.js]"]
end

node_user(("Viewer"))

node_user -->|"uses"| node_app
node_app -->|"tracks"| node_series
node_app -->|"tracks"| node_films
node_app -->|"shows"| node_home
node_app -->|"filters"| node_filters
node_app -->|"shows"| node_calendar
node_app -->|"offers"| node_explore
node_app -->|"shows"| node_titleinfo
node_series -->|"gets series data"| node_tvmaze
node_explore -->|"gets listings"| node_tmdb
node_titleinfo -->|"gets title data"| node_tmdb
node_titleinfo -->|"gets ratings"| node_omdb
node_app -->|"saves lists"| node_storage
node_backup -->|"exports and restores"| node_storage
node_tvtime -->|"imports data"| node_app
node_app -->|"offers optional sync"| node_sync
node_sync -.->|"uses"| node_firebase
node_browser -->|"runs"| node_app
node_worker -->|"caches app files"| node_browser

click node_app "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_series "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_films "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_home "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_filters "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_calendar "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_explore "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_titleinfo "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_storage "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_backup "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_tvtime "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_sync "https://github.com/stanlleyzagath/showtime/blob/main/index.html"
click node_firebase "https://github.com/stanlleyzagath/showtime/blob/main/firebase-config.js"
click node_worker "https://github.com/stanlleyzagath/showtime/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_app,node_series,node_films,node_home,node_filters,node_calendar,node_user toneBlue
class node_explore,node_titleinfo,node_tvmaze,node_tmdb,node_omdb toneAmber
class node_storage,node_backup,node_tvtime,node_sync,node_firebase toneMint
class node_browser,node_worker toneRose
```

## Components

### Tracking experience

- [Show Time app](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Series tracking](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Film lists](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Home dashboard](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Filters and sorting](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Episode calendar](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`

### Discovery and details

- [Explore titles](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Title details](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- **TVmaze**
- **TMDB**
- **OMDb**

### User data

- [Browser storage](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Backup import/export](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [TV Time import](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Cloud sync](https://github.com/stanlleyzagath/showtime/blob/main/index.html): `index.html`
- [Firebase](https://github.com/stanlleyzagath/showtime/blob/main/firebase-config.js): `firebase-config.js`

### Browser platform

- **Browser**
- [Offline cache](https://github.com/stanlleyzagath/showtime/blob/main/sw.js): `sw.js`

### Other components

- **Viewer**

## Connections

- Viewer → Show Time app: uses (evidence: `README.md`)
- Show Time app → Series tracking: tracks (evidence: `README.md`)
- Show Time app → Film lists: tracks (evidence: `README.md`)
- Show Time app → Home dashboard: shows (evidence: `README.md`)
- Show Time app → Filters and sorting: filters (evidence: `README.md`)
- Show Time app → Episode calendar: shows (evidence: `README.md`)
- Show Time app → Explore titles: offers (evidence: `README.md`)
- Show Time app → Title details: shows (evidence: `README.md`)
- Series tracking → TVmaze: gets series data (evidence: `README.md`)
- Explore titles → TMDB: gets listings (evidence: `README.md`)
- Title details → TMDB: gets title data (evidence: `README.md`)
- Title details → OMDb: gets ratings (evidence: `README.md`)
- Show Time app → Browser storage: saves lists (evidence: `README.md`)
- Backup import/export → Browser storage: exports and restores (evidence: `README.md`)
- TV Time import → Show Time app: imports data (evidence: `README.md`)
- Show Time app → Cloud sync: offers optional sync (evidence: `README.md`)
- Cloud sync → Firebase: uses (evidence: `README.md`)
- Browser → Show Time app: runs (evidence: `README.md`)
- Offline cache → Browser: caches app files (evidence: `sw.js`)
