Skip to content

gon7187/python-path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Path

CI License: MIT

Русскоязычный тренажёр Python в духе Duolingo: короткая теория, проверяемая практика и плавный путь от первого print() до собственных проектов.

Зачем этот проект

Python Path делает обучение практичным и последовательным. Ученик проходит материал маленькими шагами, получает мгновенную обратную связь по ответам и коду, возвращается к ошибочным заданиям и видит свой прогресс в XP, звёздах и серии занятий.

Сейчас в курсе
📚 Программа 31 раздел · 120 уроков · 360 заданий
🧠 Практика Выбор ответа, короткий ввод и исполняемый Python-код
🏆 Мотивация XP, звёзды, стрик, достижения, повторение ошибок
📱 Интерфейс Адаптивный, без фронтенд-сборки
⚙️ Технологии FastAPI · SQLite · vanilla JavaScript · uv

Быстрый старт

Требуются Python 3.11+ и uv.

git clone https://github.com/gon7187/python-path.git
cd python-path
uv sync --extra dev
uv run uvicorn app.main:app --reload

Откройте http://127.0.0.1:8000. Прогресс сохраняется локально в python_path.db, который исключён из Git.

Чтобы открыть приложение с телефона в той же Wi-Fi-сети, запустите сервер так:

uv run uvicorn app.main:app --host 0.0.0.0 --port 8000

Программа курса

Курс следует от базового синтаксиса к реальным инструментам разработки:

  1. Первые программы, типы, условия, циклы, функции и коллекции.
  2. Строки, модули, файлы, JSON/CSV, исключения и ООП.
  3. Типы, стандартная библиотека, регулярные выражения, тесты и Git.
  4. CLI, окружения, HTTP/API, SQL, параллельность и async.
  5. Четыре выпускных мини-проекта: задачи, заметки, API-клиент и релиз приложения.

Полная последовательность из 31 раздела — в карте курса.

Возможности

  • Каждый урок содержит три карточки теории и три задания.
  • Следующий урок открывается после успешного прохождения предыдущего.
  • После каждого раздела открывается контрольная точка; для зачёта требуется 70% правильных ответов.
  • Режим практики отдаёт сначала задания, в которых ученик ошибался.
  • Код проверяется в изолированном Python-процессе с AST-фильтром и двухсекундным лимитом.
  • Один пользователь, локальный SQLite: можно заниматься без регистрации и облака.

Разработка и проверки

uv run ruff check app tests
uv run ruff format --check app tests
uv run pyright app tests
uv run pytest -q

В репозитории есть GitHub Actions, которые выполняют эти проверки на каждом push и pull request.

Структура

app/
  main.py                 # FastAPI-приложение и JSON API
  content.py              # базовые уроки и объединение программы
  extended_curriculum.py  # 108 уроков расширенной части
  evaluator.py            # проверка ответов и учебного кода
  db.py                   # SQLite-прогресс
  static/                 # адаптивный интерфейс
tests/                    # unit- и API-тесты
docs/                     # карта курса и архитектурные решения

Подробнее о границах компонентов — в архитектуре. Как развивать проект — в CONTRIBUTING.md.

Безопасность учебного раннера

Встроенный редактор рассчитан на короткие учебные задачи: запрещены импорты и системные операции, решение запускается отдельным процессом и останавливается по таймауту. Это удобная защита для локального тренажёра, но не полноценный sandbox для публичного многоарендного сервиса. Перед публикацией в интернете нужен отдельный контейнерный раннер с лимитами CPU, памяти и сети. Детали — в SECURITY.md.

Лицензия

Распространяется по лицензии MIT: проектом можно пользоваться, изменять его и распространять с сохранением текста лицензии.

About

Русскоязычный тренажёр Python: 139 уроков, серии практики, экзамены и адаптивный мобильный интерфейс.

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors