Practice drawing and naming organic compounds. The app has a FastAPI backend and a Vite + React frontend.
- Backend API under backend/ for auth, quiz logic, and structure validation
- Frontend app under frontend/ for drawing and study modes
- A local data store at backend/data/store.json (created at runtime)
- Python 3.10+
- Node.js 18+
Copy .env.example to .env and fill in values as needed.
Required for AI grading:
- GEMINI_API_KEY
Optional:
- GEMINI_MODEL (override model selection)
- JWT_SECRET (set a real secret in production)
- DATA_FILE (path to the local JSON store)
- HOST, PORT
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn backend.main:app --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devOpen http://localhost:5173 and the frontend will call the backend at http://localhost:8000.
docker build -t molar .
docker run --rm -p 8000:8000 -e GEMINI_API_KEY=... molar- The app stores user accounts and stats in a local JSON file (backend/data/store.json).