1
0
Fork 0
mirror of https://github.com/EDeev/web-dev.git synced 2026-10-07 20:49:38 +03:00
Учебный курс «Веб-разработка» (Московский Политех): 6 лабораторных на Flask, домашние задания с тестами и экзаменационная электронная библиотека https://web-dev.deev.space
Find a file
2026-10-06 22:14:23 +03:00
.github/workflows Docker-образ экзаменационного приложения (Flask + gunicorn, база в томе) и релизы по тегу v* 2026-10-06 22:13:15 +03:00
docker Docker-образ экзаменационного приложения (Flask + gunicorn, база в томе) и релизы по тегу v* 2026-10-06 22:13:15 +03:00
docs/screenshots README на русском и английском, скриншот экзамена 2026-10-02 21:29:26 +00:00
ex CI: синтаксис (ruff), тесты домашних заданий, импорт всех лабораторных и экзамена 2026-10-02 21:29:26 +00:00
hws Режим отладки и SECRET_KEY из окружения, зависимости lab-4/5 закреплены 2026-10-02 21:27:00 +00:00
labs Вернуть исходные переводы строк (LF) в файлах, затронутых предыдущим коммитом 2026-10-06 22:14:23 +03:00
.dockerignore Docker-образ экзаменационного приложения (Flask + gunicorn, база в томе) и релизы по тегу v* 2026-10-06 22:13:15 +03:00
.gitignore Базы SQLite и загруженные картинки убраны из git 2026-10-02 21:27:00 +00:00
Dockerfile Docker-образ экзаменационного приложения (Flask + gunicorn, база в томе) и релизы по тегу v* 2026-10-06 22:13:15 +03:00
README.en.md Вернуть исходные переводы строк (LF) в файлах, затронутых предыдущим коммитом 2026-10-06 22:14:23 +03:00
README.md Вернуть исходные переводы строк (LF) в файлах, затронутых предыдущим коммитом 2026-10-06 22:14:23 +03:00

Web Development

Русский · English

CI Release

Labs, homework and the exam project for the "Web Development" course at Moscow Polytechnic University: six Flask apps, 37 Python exercises with tests, and an online library.

Status: coursework (Moscow Polytech, group 241-327, 2025/26), completed, archived · labs at web-dev.deev.space, exam at ex-web.deev.su

Exam: online library

Stack: Python · Flask · Jinja2 · Flask-Login · Flask-SQLAlchemy · Flask-Migrate · SQLite/MySQL · Bootstrap 5 · pytest

Folder Contents
labs/lab-1 blog post template with Flask and Jinja2
labs/lab-2 request data: parameters, headers, cookies, forms, phone number validation
labs/lab-3 sign-in with Flask-Login, protected pages, sessions
labs/lab-4 user accounts CRUD: database, validation, password hashing
labs/lab-5 roles and permissions, visit log, reports with CSV export
labs/lab-6 education portal: course reviews, ratings, pagination, filters
hws/hw-1, hws/hw-2 37 Python exercises (algorithms, files, decorators, generators, OOP) and 241 tests
ex exam: book catalog with search, reviews and roles (admin, moderator, user)

Running

cd labs/lab-3 && pip install -r requirements.txt
cd app && FLASK_DEBUG=1 python app.py

cd ex && pip install -r requirements.txt
python db/db_seed.py          # database, roles and test users (passwords are printed)
python run.py

SECRET_KEY and FLASK_DEBUG come from environment variables. Homework tests: cd hws/hw-1 && pytest test.py.

Docker: the exam app ex/ as a prebuilt image:

docker run -d -p 8000:8000 -e SECRET_KEY=change-me -v webdev-db:/app/db -v webdev-uploads:/app/app/static/uploads ghcr.io/edeev/web-dev
docker logs <container>       # on first start: logins and passwords of the test users

(same as git.deev.su/edeev/web-dev), then open http://localhost:8000.

License

Coursework (Web Development, Moscow Polytechnic University, 2025/26). The code is open for study; there is no separate license.

Author

Egor Deev — GitHub · Telegram · egor@deev.space


⭐ If you find this project useful, give it a star on GitHub!

Made with ❤️ — deev.space