How mizcausevic-dev/open-problems-atlas works
Purpose and principal workflow
Open Problems Atlas is a static, local-first mathematics reference and research workspace: people browse and search a curated problem list, inspect problem details, run mathematical tools, and keep private notes and tracking data in their browser. The primary workflow starts when a visitor opens the deployed site; the browser loads the app, whose hash-routed views read the problem corpus and local state. There is no backend or account system. Separate build scripts prepare the problem data and static glossary and quiz pages.
Components
Application and navigation
• Visitor — null repository path. A person using the deployed site initiates the main workflow by opening it and interacting with its views and tools.
• React bootstrap and offline registration — src/main.tsx. Mounts the app and, in production on HTTP(S), registers the service worker.
• Application shell and route switch — src/App.tsx. Provides navigation and the command palette, reads the current route, and selects the corresponding app view.
• Hash router and URL state — src/lib/router.ts. Parses hash routes and query parameters and updates the URL for navigation and shareable view state.
Problem atlas and reference content
• Generated problem corpus — scripts/build-dataset.mjs. Parses the documented Wikipedia source article into the generated dataset used by the atlas; the generated output is not present in the supplied tree.
• Problem browsing and detail views — src/views/AtlasView.tsx. The atlas view presents the problem list and its search/filter workflow; other problem-focused views in src/views/ cover overview, details, collections, timeline, and dashboard. Their exact data wiring was not sampled.
• Search and filtering — src/lib/search.ts. Ranks problem matches and applies status, field, tracking, and sort choices; tracking filters are supported by the module’s state model.
• Glossary content and build input — src/data/glossary.mjs. Supplies hand-authored definitions and explanatory notes for generated static glossary pages.
• Quiz content — src/data/quiz.mjs. Supplies quiz material; README documents a build-generated static quiz with explanations and glossary links.
Research workspace and local state
• Journal editing surface — src/components/MathEditor.tsx. Edits notes as plain LaTeX text, with insertion and autocomplete aids, supporting preview and export-friendly note content.
• LaTeX editing primitives — src/lib/latex/insert.ts. Implements pure text and selection operations used by the editor.
• Local research store — src/lib/storage.ts. Hydrates and persists user data in browser local storage, exposes observable updates, and handles attachment accounting and vault-mode encryption.
• Browser cryptography — src/lib/crypto.ts. Provides the encryption/decryption functions imported by the store; the README documents AES-GCM encryption with a PBKDF2-derived key.
Mathematical lab
• Lab views and tool coordination — src/views/LabView.tsx. Selects and configures lab tools; the sampled code shows URL-backed plotting inputs and a covering-tool view.
• Math expression context — src/lib/math/mathContext.ts. Assembles app-specific functions from arithmetic, prime, zeta, and Collatz kernels for use by expressions.
• Math computation kernels — src/lib/math/expression.ts. The tree identifies the expression engine; separate modules under src/lib/math/ implement mathematical domains including primes, zeta, Collatz, and covering sets. The sampled context confirms calls to several kernels, but not all tool-to-kernel wiring.
Static-site offline and generated pages
• Service worker — public/sw.js. Caches the app shell and same-origin resources and provides navigation fallbacks for offline use.
• Build-time page and asset generation — scripts/build-glossary.mjs. The build command also invokes quiz, SEO, and precache scripts; those build steps generate static pages and offline assets, but their detailed behavior was not sampled.
Relationships
• Visitor -> React bootstrap and offline registration: opens the deployed site; the bootstrap mounts the application in the browser.
• React bootstrap and offline registration -> Application shell and route switch: renders the app inside the React root.
• Application shell and route switch -> Hash router and URL state: reads route and query state and uses navigation helpers.
• Application shell and route switch -> Problem browsing and detail views: selects views according to the parsed route.
• Problem browsing and detail views -> Search and filtering: uses problem search and filter behavior; precise call sites were not sampled.
• scripts/build-dataset.mjs -> Generated problem corpus: parses the documented source article to generate the problem data.
• scripts/build-glossary.mjs -> Glossary content and build input: uses glossary material in the documented static-page build.
• Application shell and route switch -> Journal editing surface: the app includes a journal route; exact view-level wiring was not sampled.
• Journal editing surface -> LaTeX editing primitives: imports text insertion, selection, and autocomplete helpers.
• Journal editing surface -> Local research store: the journal is documented as private browser data; the precise editor-to-store call site was not sampled.
• Local research store -> Browser cryptography: calls encryption when saving vault data and decryption when unlocking it.
• Lab views and tool coordination -> Hash router and URL state: writes plot expressions and ranges to shareable URL state.
• Lab views and tool coordination -> Math expression context: supports plot-based lab computations; the precise call site is not in the excerpt.
• Math expression context -> Math computation kernels: invokes arithmetic-table, sieve, prime-counting, logarithmic-integral, zeta, and Collatz functions.
• React bootstrap and offline registration -> Service worker: registers the worker in production for eligible origins.
• Service worker -> Browser cache: stores same-origin responses and serves cached resources or navigation fallbacks offline.
Coverage limits
The supplied source excerpts are partial. Runtime dataset imports, detailed view-to-store wiring, the full tool dispatch for the lab, and individual build-script implementations could not be established directly. The README documents those product behaviors, but unsupported call-level connections are left unspecified.
Main entry points: App.tsx Application shell · main.tsx React bootstrap · MathEditor.tsx Journal editor · LabView.tsx Lab views
Components 19
Application and navigation
- Visitor
- React bootstrap
src/main.tsx - Application shell
src/App.tsx - Hash router
src/lib/router.ts
Atlas and reference content
- Dataset builder
scripts/build-dataset.mjs - Problem corpus
- Problem views
src/views/AtlasView.tsx - Problem search
src/lib/search.ts - Glossary content
src/data/glossary.mjs
Research workspace
- Journal editor
src/components/MathEditor.tsx - LaTeX helpers
src/lib/latex/insert.ts - Local research store
src/lib/storage.ts - Browser cryptography
src/lib/crypto.ts
Mathematical lab
- Lab views
src/views/LabView.tsx - Math context
src/lib/math/mathContext.ts - Math kernels
src/lib/math/expression.ts
Build and offline support
- Glossary builder
scripts/build-glossary.mjs - Service worker
public/sw.js - Browser cache
Connections 16
- Visitor → React bootstrap: opens site
- React bootstrap → Application shell: mounts
- Application shell → Hash router: reads and navigates
- Application shell → Problem views: selects views
- Problem views → Problem search: searches and filters
- Dataset builder → Problem corpus: generates
- Glossary builder → Glossary content: uses content
- Application shell → Journal editor: routes to
- Journal editor → LaTeX helpers: uses
- Journal editor → Local research store: stores notes
- Local research store → Browser cryptography: encrypts and decrypts
- Lab views → Hash router: writes URL state
- Lab views → Math context: computes plots
- Math context → Math kernels: invokes
- React bootstrap → Service worker: registers
- Service worker → Browser cache: caches responses