index · all work
12 · study platform

Study Hub

A study platform for three university CS courses, where the automata, parsers, and data structures aren't diagrams you read but machines you step through.

Year2026
Statusin progress
RoleSolo · design + engineering
Built withTypeScript · Astro 6 · React 19 · Tailwind CSS v4 · MDX · +10
study-hub-three-orpin.vercel.appopen ↗

Live demo. Click Run to load the real app and use it right here, or open it full-screen.

01Overview

Study Hub is a study platform for three of my university computer-science courses: Lenguajes Formales, Estructuras de Datos y Algoritmos, and Sistemas de Gestión de Datos. Each subject has its own dashboard of practice problems with simple, formal, and full solution tabs, topic explanations, handwritten-style study notes, and exam quizzes, all pre-authored as MDX with KaTeX math. One typed subject config and one shared design system drive all three, so a subject owns a single accent and every surface resolves to it automatically.

The part that matters is that the hard theory is interactive, not static. Automata render as live state graphs: DFA, NFA, PDA, and Turing machines laid out by ELK and drawn with ReactFlow, that you step through one symbol at a time while the active transition lights up, the stack grows, and the tape moves. The parsing unit adds FIRST and FOLLOW sets, LL(1) and SLR tables, and shift-reduce traces, alongside grammar transforms and newer sorting and database-schema visualizers. A key-free MCP server exposes the whole content store to Claude over stdio as typed read and authoring tools, and the app runs fully offline with seeded content, self-hosted fonts, and no API keys.

02The problem

CS courses lean on ideas that are genuinely dynamic: a machine consuming a string, a stack rising and falling, a parser reducing a handle. They are usually taught with static blackboard snapshots and PDFs. I wanted one place that holds a whole semester of three courses and makes those moving parts actually move, with solutions I can read at three depths and content an agent can extend without touching a database.

03Highlights
  • Automata as first-class visualizations: DFA, NFA, PDA, and Turing-machine state graphs are auto-laid-out with ELK and rendered in ReactFlow, then a shared step runner walks an input string one symbol at a time, highlighting the active transition, growing and shrinking the PDA stack, and moving the Turing tape under the head.
  • The whole compilers unit made interactive: FIRST and FOLLOW set computation, LL(1) and SLR parse tables, animated shift-reduce traces, and CFG grammar transforms, plus newer sorting and relational-algebra visualizers, all built on one useStepAnimation primitive that renders each frame from a real, instrumented trace.
  • Content is pre-authored MDX, not a CMS: 39 problems and 66 solutions with simple / formal / full tabs, topic explanations, Caveat-handwritten study notes, and exam quizzes, every one with KaTeX math, where a single solved boolean in problem frontmatter is the source of truth for dashboard status.
  • One design system across three subjects: a refined editorial-dark theme (Instrument Serif display, Instrument Sans body, Caveat notes) with a per-subject accent bridge set via [data-subject], sapphire for Lenguajes Formales, jade for EDA, amethyst for SGD, resolved once so no surface re-declares a color map.
  • A key-free, offline MCP server: 16 typed tools (10 read, 6 write) over stdio, pure file I/O, that let Claude list and read problems, solutions, and visualizations and author new ones, with every write validated by zod schemas that mirror content.config.ts, so the server rejects exactly what an Astro build would.
  • Genuinely runnable with zero secrets: seeded content, four self-hosted woff2 fonts, and a mocked upload endpoint mean both the live demo and a fresh clone boot with no API keys and no network fonts.
04By the numbers
16
typed MCP tools, 10 read and 6 write, key-free over stdio
39
problems and 66 tabbed solutions, all pre-authored MDX
16
React visualizers, from DFA graphs to database schemas
3
subjects, 19 units, 0 API keys to run
What's inside5 parts
  • webapp

    The Astro 6 dashboard: per-subject problem lists, simple/formal/full solution tabs, explanations, notes, and exam pages, with a React island mounted for every interactive visualization.

  • vizlibrary

    The React visualization library: ReactFlow + ELK automata, PDA, and Turing-machine graphs, LL(1)/SLR parse tables, shift-reduce and relational-algebra traces, sorting steppers, and one shared step-animation runner.

  • contentcontent

    The MDX content store: problems, three-depth solutions, explanations, handwritten notes, and tests per subject, plus the JSON datasets that feed each visualization.

  • mcpserver

    The key-free stdio MCP server: 16 tools (10 read, 6 write) over pure file I/O that read and author the content store, with zod validation mirroring the Astro content config.

  • configconfig

    The subject registry: one typed SubjectConfig per course (units, topics, exams, viz enums) that drives routing, dashboards, and the per-subject accent triad.

·Tags
study platformautomata theoryinteractive vizMCPMDX contentoffline-first
Full tech stack 15
TypeScriptAstro 6React 19Tailwind CSS v4MDXKaTeXReactFlowELK.jsFramer MotionZustandModel Context ProtocolZodNode 22pnpmVercel