Learner frontend
Homepage, course catalog, player, About page, account menu, pinned courses/modules, and responsive carousel UI.
A current view of the GradStudio learning platform after the latest homepage, carousel, account, pins, admin, and cleanup changes.
The app is split into a static learner experience, a browser admin editor, and a Cloudflare Worker backend that owns routing, auth, data, and object storage.
Homepage, course catalog, player, About page, account menu, pinned courses/modules, and responsive carousel UI.
Course/folder editing, simulation upload, carousel layout editing, card sizing, frame style, course-list selection, and search.
A single Worker dispatches public APIs, admin APIs, auth, R2 file serving, D1 queries, KV config, and cache headers.
Click any node to see what it does and where it lives in the codebase.
The main GradStudio experience served to learners.
This is the same request path shown as a connected node graph, updated for the latest hero, carousel, account pins, admin editor, Worker, D1, R2, and KV changes.
The browser starts with the static GradStudio shell.
The current app uses the same Worker for page serving and API calls, with D1/KV/R2 selected by the request type.
The Worker file is the main route dispatcher. These are the important public, account, and admin route groups it exposes.
/api/courses/api/courses/:courseId/api/categories/api/learn-carousels/api/search?q=.../api/recent/api/auth/register/api/auth/login/api/auth/google/token/api/auth/me/api/auth/refresh/api/user-pins/api/user-pins/api/views/:simId/api/likes/:simId/api/dislikes/:simId/api/comments/:simId/api/comments/:simId/api/reports/:simId/api/bookmarks/:simId/api/admin/courses/api/admin/courses/api/admin/courses/:id/api/admin/categories/api/admin/sections/api/admin/simulations/api/admin/upload-simulation/api/admin/learn-carousels/api/admin/learn-carousels/api/admin/carousels/api/admin/carousels/api/admin/carousel/api/admin/carousel/api/admin/carousel/upload/api/admin/sync-content/api/admin/bulk-upload/api/admin/users/api/admin/users/:id/role/api/admin/metrics/unlock-accountD1 owns relational content and user data. KV owns high-speed config/tokens/rate limits. R2 owns static files, simulations, and uploaded media.
| Storage | Key tables or keys | Purpose | Recent relevance |
|---|---|---|---|
| D1 | categories, courses, sections, simulations |
Course catalog hierarchy, modules, lessons, thumbnails, and searchable metadata. | Admin search/select now depends on clean folder/course metadata. |
| D1 | carousels, carousel_cards |
Legacy and compatibility storage for carousel rows and card media metadata. | Still supported while new learn carousel config is stored through KV. |
| D1 | users, sessions, user_pins |
Account identity, session history, and account-backed pinned courses/modules. | `2026-04-28-add-user-pins.sql` adds the pins table and index. |
| D1 | comments, likes, bookmarks, reports, analytics tables |
Learner engagement, feedback, safety reports, and usage metrics. | Player and course pages can write engagement without changing static files. |
| KV | gradstudio-learn-carousels:{env}, refresh tokens, rate limits |
Fast config reads, auth refresh state, and request throttling. | Modern homepage layout blocks and card sizing are saved here. |
| R2 | static/, dev-static/, carousel/images/, simulations |
HTML/CSS/JS assets, generated images, lesson files, uploaded carousel media. | Hero image and production frontend assets are served from R2. |
These are the current files to inspect before making future architecture or product changes.
static/index.htmlMain production shell: top nav, hero, catalog, player mount points, auth/info page mount points, footer, CSS/JS cache keys.static/gradstudio-learn-demo.htmlStandalone copy of the learner app shell for the GradStudio Learn demo path.static/gradstudio-learn-demo.cssCurrent responsive design, hero sizing, carousel cropping fixes, account menu, pins UI, About page, player density, and mobile rules.static/gradstudio-learn-demo.jsMain learner app logic: routing, catalog render, carousel render, account menu, Google sign-in, pinned items, course detail, player, About/contact/legal pages.static/hero-gradstudio-20260429-152846.pngCurrent hero image asset referenced by the homepage and carousel card config.static/gradstudio-learn-admin.htmlAdmin editor shell for course, folder, simulation, and carousel management.static/gradstudio-learn-admin.jsAdmin logic for course/folder editing, carousel layout blocks, card editor, height rule, frame style, course selector, and search.worker/src/index.jsMain Cloudflare Worker entry and route dispatcher for public, auth, user, admin, R2, D1, and KV behavior.worker/wrangler.tomlProduction/dev routes, D1 binding, R2 bucket binding, KV namespaces, static/admin prefixes, environment variables.worker/schema.sqlBaseline schema for courses, simulations, users, comments, bookmarks, analytics, and carousel tables.worker/migrations/2026-04-28-add-user-pins.sqlLatest user pins persistence migration..gitignoreIgnores `USELESS/`, local browser profiles, logs, temp files, archives, dependencies, and local environment files.This page reflects the latest production work that changed the platform behavior and folder structure.