EduChat is a Streamlit-based AP Physics C tutoring prototype from EduBeyond. It generates practice questions, solves custom student questions, supports follow-up tutoring chat, and includes gamification for practice sessions.
This repository contains a functional internship prototype, not a released production product. The app requires an OpenRouter API key.
- AP Physics C question generation across Mechanics and Electricity & Magnetism topics
- Multiple choice and free response question modes
- Numeric, derivation-based, and concept-based answer formats
- Custom question solver
- Follow-up chat about generated questions
- Daily quizzes
- Points, streaks, achievements, and boss questions
- Python
- Streamlit
- OpenAI Python SDK
- OpenRouter API
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtOn Windows, activate the virtual environment with:
.venv\Scripts\activateCreate a local .env file or configure your shell/hosting environment with:
OPENROUTER_API_KEY=
OPENROUTER_MODEL=openrouter/freeDo not commit .env or Streamlit secrets files. The app loads OPENROUTER_API_KEY first from environment variables and also supports Streamlit st.secrets. OPENROUTER_MODEL is optional and defaults to openrouter/free.
For local shell use:
export OPENROUTER_API_KEY="your-key-here"
export OPENROUTER_MODEL="openrouter/free"For Streamlit secrets, use .streamlit/secrets.toml locally and keep it untracked:
OPENROUTER_API_KEY = "your-key-here"
OPENROUTER_MODEL = "openrouter/free"streamlit run app.pyEduBeyond-clean/
├── app.py
├── requirements.txt
├── README.md
├── LICENSE
├── .gitignore
├── .env.example
├── assets/
└── docs/
This project is licensed under the MIT License. See LICENSE.