A local Streamlit app that parses the included DOCX practice exam and provides:
- Persistent exam sessions in SQLite
- Save and continue ongoing exams later
- Retry only failed questions across multiple rounds until all are correct
- Question navigation with status indicators (open / filled / checked / right / wrong)
- Explanations shown after checking
- Session/round history and old attempts retained in the database
- Python 3.10+
- Windows/macOS/Linux
- Open this folder in a terminal.
- (Recommended) create and activate a virtual environment.
Windows PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate- Install dependencies:
python -m pip install -r requirements.txt- Run the app:
python -m streamlit run app.py- Open the local URL shown in terminal (typically http://localhost:8501).
- If
streamlitis not recognized, usepython -m streamlit run app.py. - If activation is blocked by PowerShell policy, run this once in PowerShell and reopen terminal:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned- On first run, the app reads
dp700_final.docxand stores parsed questions/answers in SQLite. - The SQLite file
exam_app.dbstores:- all parsed questions
- all sessions
- all rounds
- all answer attempts
- In submit mode, answers are checked when submitting the round.
- In immediate mode, answers are checked per question when saved.
- In auto retry mode, the next round is automatically created with failed questions.
- In manual retry mode, you can start the failed-only next round yourself.
app.py- Streamlit UI and exam flowdb.py- SQLite schema and data operationsexam_parser.py- DOCX parser and answer evaluationrequirements.txt- Python dependencies.gitignore- Git ignore defaults
Suggested steps:
git init
git add .
git commit -m "Initial DP-700 exam trainer"Then create a GitHub repository and push:
git remote add origin <your-repo-url>
git branch -M main
git push -u origin main- If you use a different DOCX filename, set it in the app sidebar (
DOCX path). - If you want to re-import changed question data, delete
exam_app.dband run again.