A Vite + React app for organizing study materials and taking practice tests. Manage courses, chapters, and questions (with rich options, images, and explanations), then run timed or self-paced tests with configurable feedback.
- Create, edit, and delete courses, chapters, and questions with answer options.
- Attach images to questions; stored in browser IndexedDB to keep backups small.
- Import/export database to keep your study set portable; localStorage keeps progress offline.
- Two feedback modes (instant vs. summary) when running tests.
- Dockerfile and Compose for production-style builds behind Nginx.
- React 18 + TypeScript
- Vite for bundling/dev server
- TailwindCSS for styling
- sql.js for client-side database; IndexedDB for image storage
- Nginx-serving static build (Docker)
Prereqs: Node.js 18+ and npm.
npm install
npm run dev -- --host --port 5173Dev server will print a URL (defaults to http://localhost:5173).
npm run dev– start Vite dev servernpm run build– type-check then build production assets todist/npm run preview– preview the production build locally
- The question DB lives in
localStorage(keymock-test-taker.db). - Question images are saved in IndexedDB (
mock-test-image-store). - Use the in-app import/export controls to back up or move your data between browsers.
Build and run the production image locally:
docker build -t mock-test-taker .
docker run -p 5175:80 mock-test-takerOr use Compose (mapped to http://localhost:5175):
docker compose up -d- The static files from
dist/can be served by any static host. The provided Nginx image matches the Dockerfile. - Because data is stored in the browser, clearing storage will remove your content—export before deployments that reset storage.
MIT License. See LICENSE.