ChemExam · Teaching software

Chemical Engineering Exam Builder

Developed a React/Electron + FastAPI exam platform with multi-format question imports, formula and diagram editing, constraint-based paper assembly, LaTeX/PDF export, and Windows packaging with pre-update backups.

Period
2026 — present
Role
Product planning & full-stack development · AI-assisted
Delivery
Windows desktop application

Project background

Chemical engineering questions combine equations, units, calculations, and equipment diagrams, while source materials are scattered across Word, Excel, PDF, and images. ChemExam brings source preparation, human review, paper assembly, and typesetting into one workspace, with question banks organized by course, chapter, and knowledge point.

My contribution

  • Mapped the instructor workflow from question entry and review to blueprint configuration and handoff, and designed the desktop workspace and question-bank data structures.
  • Used AI-assisted development to implement, integrate, and debug the React/Electron frontend and FastAPI backend, including equations, illustrations, course outlines, and import drafts.
  • Implemented constraint checks, question selection, quality reports, and A/B paper comparison for score, question type, chapter, and difficulty requirements.
  • Maintained regression tests, database migrations, Windows packaging, and pre-update backups, alongside instructor maintenance and system handoff documentation.

Core implementation

01

Multi-format imports and review

Parses Word, Excel, CSV, plain text, Markdown, PDF, and images into structured drafts. Instructors review question types, scores, answers, and knowledge points before committing them. Course outlines become editable chapter and knowledge-point trees with drag-and-drop organization.

02

Equations and illustrations

MathLive and KaTeX support equation input and display. Illustrations support cropping, rotation, shapes, and equation annotations; both a PNG and an editable scene are saved. Paper-specific image adjustments remain separate from the question-bank version.

03

Blueprints and assembly diagnostics

Blueprints specify question counts, scores, chapters, difficulty, and required knowledge points. Preflight checks identify shortages and conflicting requirements; generated papers include coverage and score distributions. A/B comparison highlights shared questions and differences in topic and question-type coverage.

04

Preview, typesetting, and export

Provides in-app HTML previews and uses Jinja2 templates to generate LaTeX for XeLaTeX/latexmk PDF compilation. Questions, options, answers, marking content, and illustrations share one export workflow. The question bank can also be exported to Excel.

Technology and engineering

Desktop & interaction
React · TypeScript · Electron · Vite · MathLive · KaTeX
Backend & data
Python · FastAPI · Pydantic · SQLAlchemy · SQLite · Alembic
Document processing
Structured parsing · Local OCR · Jinja2 · LaTeX/PDF
Testing & delivery
pytest · Vitest · PyInstaller · electron-builder / NSIS · electron-updater

Delivered results and current work

  • Published Windows Release 1.0 (v1.1.0) on September 9, 2026, covering question-bank maintenance, imports, assembly, preview, export, and backups.
  • The desktop package includes a local backend and keeps questions and settings in a separate user-data directory. Automatic updates back up and verify the database and question images before installation. PDF compilation requires XeLaTeX/latexmk configuration.
  • Ongoing work includes mixed-source outline imports, drag-and-drop review, and OCR stability. Collaborative authoring remains under development and is outside the formal handoff scope.