EduBuilder is a small, local-first product built around one consistent domain: learning plans. The same domain is reused through EX1, EX2, and EX3 so the repository can be graded as one incremental product.
uv venv
source .venv/bin/activate
uv pip install -r requirements.txtOn Windows PowerShell:
uv venv
.\.venv\Scripts\Activate.ps1
uv pip install -r requirements.txtMain files:
poseai_backend/main_ex1.pytests/test_ex1_api.pydocs/EX1-notes.md
Run EX1:
uv run uvicorn poseai_backend.main_ex1:app --reload
uv run pytest tests/test_ex1_api.py -qEX1 delivers:
- FastAPI CRUD for one core resource:
Plan - in-memory data layer
- Pydantic validation
- pytest coverage with FastAPI
TestClient - clear local run instructions
Main files:
frontend/app_ex2.pyposeai_backend/main_ex1.pydocs/EX2-notes.mdtests/test_ex2_ui.py
Run EX2:
uv run uvicorn poseai_backend.main_ex1:app --reload
uv run streamlit run frontend/app_ex2.pyEX2 delivers:
- Streamlit interface over the EX1
/plansAPI - no authentication or security prompts
- list existing entries immediately
- add a new entry through a lightweight chat-style flow
- one small extra: summary metrics and CSV export
- automated EX2 coverage for the prompt-to-plan flow and CSV export
Main files:
poseai_backend/main.pyposeai_backend/auth.pyposeai_backend/database.pyposeai_backend/models.pyfrontend/app.pyscripts/refresh.pyscripts/migrate.pyscripts/seed.pyscripts/demo.shscripts/capture_trace_excerpt.pydocs/EX3-notes.mddocs/runbooks/compose.mdcompose.yamlalembic/tests/test_api.pytests/test_worker.pytests/test_openapi.py.github/workflows/ci.yml
Run EX3 locally:
uv run python -m scripts.migrate
uv run python -m scripts.seed
uv run uvicorn poseai_backend.main:app --reload
uv run streamlit run frontend/app.pyRun EX3 with Docker Compose:
docker compose up --buildEX3 delivers:
- FastAPI backend with SQLite persistence through SQLModel
- Alembic migrations and seed script
- Streamlit interface with chat-style course creation, My Courses, Shared Courses, and Admin Panel
- Redis-backed rate limiting
- async refresh worker with retries and idempotency
- JWT authentication and admin role checks
- automated tests including worker and OpenAPI coverage
- Docker Compose orchestration for API, frontend, Redis, and worker
- one enhancement: weekly learning-plan digest generation
The core resource is a learning plan.
Core fields:
titlegoalcueslevelis_public
EX3 adds:
ownerweekly_digest
AI tools were used as pair-programming aids for code structure, debugging, tests, and documentation. Outputs were reviewed, edited, and verified locally before submission.