1
0
Fork 0
mirror of https://github.com/EDeev/web-dev.git synced 2026-10-07 20:49:38 +03:00

README на русском и английском, скриншот экзамена

Отдельный ex/README.md со ссылкой на сайт и тестовыми аккаунтами объединён с общим README.
This commit is contained in:
Деев Егор Викторович 2026-10-02 21:29:26 +00:00
parent bc087c9e7c
commit 9a23fc52e0
4 changed files with 92 additions and 70 deletions

56
README.en.md Normal file
View file

@ -0,0 +1,56 @@
# Web Development
[Русский](README.md) · **English**
[![CI](https://github.com/EDeev/web-dev/actions/workflows/ci.yml/badge.svg)](https://github.com/EDeev/web-dev/actions/workflows/ci.yml)
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](https://web-dev.deev.space), exam at [ex-web.deev.su](https://ex-web.deev.su)
![Exam: online library](docs/screenshots/exam.png)
**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
```bash
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`.
## License
Coursework (Web Development, Moscow Polytechnic University, 2025/26). The code is open for study; there
is no separate license.
## Author
**Egor Deev** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
---
<div align="center">
<sub>⭐ If you find this project useful, give it a star on GitHub!</sub>
<p><sub>Made with ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
</div>

106
README.md
View file

@ -1,90 +1,56 @@
# Курс Веб-разработки
[![Python](https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white)](https://www.python.org/)
[![Flask](https://img.shields.io/badge/Flask-000000?style=flat&logo=flask&logoColor=white)](https://flask.palletsprojects.com/)
[![SQLite](https://img.shields.io/badge/SQLite-003B57?style=flat&logo=sqlite&logoColor=white)](https://www.sqlite.org/)
[![Bootstrap](https://img.shields.io/badge/Bootstrap-7952B3?style=flat&logo=bootstrap&logoColor=white)](https://getbootstrap.com/)
# Веб-разработка
Репозиторий содержит выполненные лабораторные работы и домашние задания по курсу "Веб-разработка" в Московском Политехническом университете.
**Русский** · [English](README.en.md)
**Веб-сайт проекта:** [web-dev.deev.space](https://web-dev.deev.space)
[![CI](https://github.com/EDeev/web-dev/actions/workflows/ci.yml/badge.svg)](https://github.com/EDeev/web-dev/actions/workflows/ci.yml)
**Автор:** Деев Егор Викторович, группа 241-327
Лабораторные, домашние задания и экзаменационный проект по курсу «Веб-разработка» в Московском
Политехе: шесть Flask-приложений, 37 задач на Python с тестами и электронная библиотека.
## Структура репозитория
**Статус:** учебный проект (Московский Политех, группа 241-327, 2025/26), завершён, в архиве ·
лабораторные — [web-dev.deev.space](https://web-dev.deev.space), экзамен — [ex-web.deev.su](https://ex-web.deev.su)
### Лабораторные работы
![Экзамен: электронная библиотека](docs/screenshots/exam.png)
#### [Лабораторная работа №1](https://web-dev.deev.space/lab1)
Создание шаблона для отображения записи блога с использованием Flask и Jinja2. Реализация базовой структуры приложения, шаблонов для отображения постов и комментариев.
**Стек:** Python · Flask · Jinja2 · Flask-Login · Flask-SQLAlchemy · Flask-Migrate · SQLite/MySQL · Bootstrap 5 · pytest
**Стек:** Flask, Jinja2, Bootstrap 5
| Папка | Что внутри |
|---|---|
| `labs/lab-1` | шаблон записи блога на Flask и Jinja2 |
| `labs/lab-2` | данные запроса: параметры, заголовки, cookies, формы, проверка телефона |
| `labs/lab-3` | вход через Flask-Login, защищённые страницы, сессии |
| `labs/lab-4` | CRUD учётных записей: база, валидация, хеширование паролей |
| `labs/lab-5` | роли и права, журнал посещений, отчёты с экспортом в CSV |
| `labs/lab-6` | образовательный портал: отзывы к курсам, рейтинг, пагинация, фильтры |
| `hws/hw-1`, `hws/hw-2` | 37 задач на Python (алгоритмы, файлы, декораторы, генераторы, ООП) и 241 тест |
| `ex` | экзамен: каталог книг с поиском, рецензиями и ролями (администратор, модератор, пользователь) |
#### [Лабораторная работа №2](https://web-dev.deev.space/lab2)
Работа с данными запроса. Реализация обработки параметров URL, заголовков, cookies и форм. Валидация номера телефона на стороне сервера.
## Запуск
**Стек:** Flask, регулярные выражения
```bash
cd labs/lab-3 && pip install -r requirements.txt
cd app && FLASK_DEBUG=1 python app.py
#### [Лабораторная работа №3](https://web-dev.deev.space/lab3)
Реализация аутентификации пользователей с использованием Flask-Login. Создание системы входа, защищенных страниц и управления сессиями.
cd ex && pip install -r requirements.txt
python db/db_seed.py # база, роли и тестовые пользователи (пароли выводятся в консоль)
python run.py
```
**Стек:** Flask, Flask-Login, session management
`SECRET_KEY` и `FLASK_DEBUG` задаются переменными окружения. Тесты домашних заданий:
`cd hws/hw-1 && pytest test.py`.
#### [Лабораторная работа №4](https://web-dev.deev.space/lab4)
Разработка CRUD-приложения для управления учетными записями пользователей. Работа с базой данных, валидация данных, хеширование паролей.
## Лицензия
**Стек:** Flask, Flask-SQLAlchemy, MySQL, bcrypt
Учебный проект (Веб-разработка, Московский Политех, 2025/26). Код открыт для изучения, отдельной
лицензии нет.
#### [Лабораторная работа №5](https://web-dev.deev.space/lab5)
Авторизация пользователей и формирование статистических отчетов. Реализация системы ролей, декораторов проверки прав, журнала посещений и экспорта в CSV.
## Автор
**Стек:** Flask, Flask-Login, Blueprints, CSV export
#### [Лабораторная работа №6](https://web-dev.deev.space/lab6)
Доработка образовательного портала: добавление системы отзывов к курсам, рейтинговой системы, пагинации и фильтрации.
**Стек:** Flask, Flask-SQLAlchemy, Flask-Migrate, MySQL
### Домашние задания
#### [Домашнее задание №1](https://github.com/EDeev/web-dev/tree/main/hws/hw-1)
Решение 20 задач на Python: базовые алгоритмы, работа с файлами, регулярные выражения, структуры данных. Покрытие тестами с использованием pytest (60+ тестов).
**Темы:** базовый синтаксис Python, работа с файлами, алгоритмы, структуры данных
#### [Домашнее задание №2](https://github.com/EDeev/web-dev/tree/main/hws/hw-2)
Решение 17 задач на Python: функции, декораторы, генераторы, ООП, работа с файловой системой. Покрытие тестами с использованием pytest (60+ тестов).
**Темы:** функции, декораторы, генераторы, ООП, аргументы командной строки, работа с файлами
## План развития
- Развертывание всех лабораторных работ на хостинге
- Добавление CI/CD pipeline для автоматического тестирования
- Документирование API endpoints
- Рефакторинг кода с применением паттернов проектирования
- Добавление Docker-контейнеризации для упрощения развертывания
## Технологический стек
- **Backend:** Python, Flask, Flask-Login, Flask-SQLAlchemy, Flask-Migrate
- **Frontend:** HTML5, CSS3, Bootstrap 5, Jinja2
- **База данных:** MySQL, SQLite
- **Тестирование:** pytest
- **Деплой:** NGINX, Unit
## Контакты
- Email: egor@deev.space
- Telegram: @Egor_Deev
- GitHub: @EDeev
## Лицензия и использование
Данный репозиторий создан в образовательных целях. Код доступен для изучения и адаптации без указания авторства.
**Деев Егор Викторович** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
---
<div align="center">
<sub>⭐ Если проект оказался полезным, поставьте звездочку на GitHub!</sub>
<p><sub>Создано с ❤️ от вашего дорогого - <a href="https://deev.space">deev.space</a> ©</sub></p>
<sub>⭐ Если проект оказался полезным, поставьте звёздочку на GitHub!</sub>
<p><sub>Сделано с ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
</div>

BIN
docs/screenshots/exam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
docs/screenshots/labs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB