# rtwotwo/autodrive architecture

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

## Overview

This repository is a curated autonomous-driving research catalog and public evaluation hub. Visitors browse research papers across four tracks, explore public datasets, compare benchmark protocols, and inspect leaderboard entries. The catalog’s source data is split across JSON files; the README documents those capabilities. The tree and sampled scripts also show Zotero import and GitHub-star refresh workflows. The browser implementation and benchmark submission handling were not sampled, so their internal wiring is not inferred.

Main entry points: [`scripts/update_github_stars.mjs`](https://github.com/rtwotwo/autodrive/blob/main/scripts/update_github_stars.mjs) (Star refresh), [`index.html`](https://github.com/rtwotwo/autodrive/blob/main/index.html) (Catalog page), [`scripts/sync_zotero.mjs`](https://github.com/rtwotwo/autodrive/blob/main/scripts/sync_zotero.mjs) (Paper import), [`data/papers.json`](https://github.com/rtwotwo/autodrive/blob/main/data/papers.json) (Paper tracks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web Catalog"]
  node_site["Catalog page<br/>[index.html]"]
  node_frontend["Browser interface<br/>[app.js]"]
  node_styles["Catalog styling<br/>[styles.css]"]
end

subgraph group_research["Research Catalog"]
  node_papers[("Paper tracks<br/>[papers.json]")]
  node_datasets[("Public datasets<br/>[datasets.json]")]
end

subgraph group_evaluation["Evaluation Hub"]
  node_benchmarks[("Benchmark catalog<br/>[benchmarks.json]")]
  node_leaderboard[("Leaderboard results<br/>[leaderboard.json]")]
  node_submissions[("Benchmark submissions")]
  node_submission_schema["Submission schema"]
end

subgraph group_curation["Data Curation"]
  node_paper_import["Paper import<br/>[sync_zotero.mjs]"]
  node_paper_review["Paper review<br/>[review_papers.mjs]"]
  node_star_refresh["Star refresh"]
  node_star_cache[("GitHub star cache<br/>[github-stars.json]")]
end

node_visitor(("Research visitor"))
node_zotero["Zotero export"]
node_github(("GitHub"))

node_visitor -->|"opens"| node_site
node_site -->|"loads interface"| node_frontend
node_site -->|"uses styles"| node_styles
node_zotero -->|"imports entries"| node_paper_import
node_paper_import -->|"writes papers"| node_papers
node_paper_import -->|"reads cache"| node_star_cache
node_paper_review -->|"updates metadata"| node_papers
node_paper_review -->|"updates cache"| node_star_cache
node_star_refresh -->|"reads and updates"| node_papers
node_star_refresh -->|"reads and writes"| node_star_cache
node_star_refresh -->|"fetches stars"| node_github

click node_site "https://github.com/rtwotwo/autodrive/blob/main/index.html"
click node_frontend "https://github.com/rtwotwo/autodrive/blob/main/assets/app.js"
click node_styles "https://github.com/rtwotwo/autodrive/blob/main/assets/styles.css"
click node_papers "https://github.com/rtwotwo/autodrive/blob/main/data/papers.json"
click node_datasets "https://github.com/rtwotwo/autodrive/blob/main/data/datasets.json"
click node_benchmarks "https://github.com/rtwotwo/autodrive/blob/main/data/benchmarks.json"
click node_leaderboard "https://github.com/rtwotwo/autodrive/blob/main/data/leaderboard.json"
click node_submissions "https://github.com/rtwotwo/autodrive/tree/main/benchmark/submissions"
click node_submission_schema "https://github.com/rtwotwo/autodrive/blob/main/benchmark/schemas/submission.schema.json"
click node_paper_import "https://github.com/rtwotwo/autodrive/blob/main/scripts/sync_zotero.mjs"
click node_paper_review "https://github.com/rtwotwo/autodrive/blob/main/scripts/review_papers.mjs"
click node_star_refresh "https://github.com/rtwotwo/autodrive/blob/main/scripts/update_github_stars.mjs"
click node_star_cache "https://github.com/rtwotwo/autodrive/blob/main/data/github-stars.json"

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_site,node_frontend,node_styles toneBlue
class node_papers,node_datasets toneAmber
class node_benchmarks,node_leaderboard,node_submissions,node_submission_schema toneMint
class node_paper_import,node_paper_review,node_star_refresh,node_star_cache toneRose
class node_visitor,node_zotero,node_github toneIndigo
```

## Components

### Web Catalog

- [Catalog page](https://github.com/rtwotwo/autodrive/blob/main/index.html): `index.html`
- [Browser interface](https://github.com/rtwotwo/autodrive/blob/main/assets/app.js): `assets/app.js`
- [Catalog styling](https://github.com/rtwotwo/autodrive/blob/main/assets/styles.css): `assets/styles.css`

### Research Catalog

- [Paper tracks](https://github.com/rtwotwo/autodrive/blob/main/data/papers.json): `data/papers.json`
- [Public datasets](https://github.com/rtwotwo/autodrive/blob/main/data/datasets.json): `data/datasets.json`

### Evaluation Hub

- [Benchmark catalog](https://github.com/rtwotwo/autodrive/blob/main/data/benchmarks.json): `data/benchmarks.json`
- [Leaderboard results](https://github.com/rtwotwo/autodrive/blob/main/data/leaderboard.json): `data/leaderboard.json`
- [Benchmark submissions](https://github.com/rtwotwo/autodrive/tree/main/benchmark/submissions): `benchmark/submissions`
- [Submission schema](https://github.com/rtwotwo/autodrive/blob/main/benchmark/schemas/submission.schema.json): `benchmark/schemas/submission.schema.json`

### Data Curation

- [Paper import](https://github.com/rtwotwo/autodrive/blob/main/scripts/sync_zotero.mjs): `scripts/sync_zotero.mjs`
- [Paper review](https://github.com/rtwotwo/autodrive/blob/main/scripts/review_papers.mjs): `scripts/review_papers.mjs`
- [Star refresh](https://github.com/rtwotwo/autodrive/blob/main/scripts/update_github_stars.mjs): `scripts/update_github_stars.mjs`
- [GitHub star cache](https://github.com/rtwotwo/autodrive/blob/main/data/github-stars.json): `data/github-stars.json`

### Other components

- **Research visitor**
- **Zotero export**
- **GitHub**

## Connections

- Research visitor → Catalog page: opens
- Catalog page → Browser interface: loads interface
- Catalog page → Catalog styling: uses styles
- Zotero export → Paper import: imports entries
- Paper import → Paper tracks: writes papers
- Paper import → GitHub star cache: reads cache
- Paper review → Paper tracks: updates metadata
- Paper review → GitHub star cache: updates cache
- Star refresh → Paper tracks: reads and updates
- Star refresh → GitHub star cache: reads and writes
- Star refresh → GitHub: fetches stars
