Learn Git by doing inside a guided, sandboxed lesson runner built with Django.
Prereqs: Python 3.12+, pip, git.
python -m venv .venv
.\.venv\Scripts\activate # on Windows (PowerShell); use `source .venv/bin/activate` on macOS/Linux
pip install -r requirements.txt
python manage.py migrate
python manage.py seed_lessons
python manage.py runserverVisit http://localhost:8000 and sign up. Lessons live under /lessons/; the guided terminal is in the lesson play view.
SECRET_KEY(required in production)DEBUG(default True; set False in production)ALLOWED_HOSTS(comma-separated hostnames)CSRF_TRUSTED_ORIGINS(comma-separated origins, e.g.https://yourapp.onrender.com)DATABASE_URL(Postgres URL; auto-provided by Render Postgres)
Static files are served by WhiteNoise; collectstatic writes to staticfiles/.
render.yaml+Procfileare included. Render commands:- Build:
pip install -r requirements.txt && python manage.py collectstatic --noinput - Start:
python manage.py migrate --noinput && gunicorn igitit.wsgi:application --bind 0.0.0.0:$PORT
- Build:
- Add a Render Postgres instance (sets
DATABASE_URLautomatically). - Set
ALLOWED_HOSTSandCSRF_TRUSTED_ORIGINSto your Render domain. - Auto-deploy from your Git branch if desired.
- Lesson catalog with progress tracking and dashboard.
- Guided lesson “play” view with a sandboxed git runner and command logs.
- Step validators for common git tasks (status/add/commit/branch/merge/stash/reset/etc.).
- Resettable per-user workspaces.
Run python manage.py seed_lessons anytime to (re)load the bundled lessons and steps.
- Uses SQLite locally by default; switches to Postgres automatically when
DATABASE_URLis set. - Static assets:
static/(source),staticfiles/(collected for production).