# Web Development Course

Репозиторий содержит выполненные лабораторные работы и домашние задания по курсу "Веб-разработка" в Московском Политехническом университете.

**Автор:** Деев Егор Викторович, группа 241-327

## Структура репозитория

### Лабораторные работы

#### [Лабораторная работа №1](https://web-dev.deev.space/lab1)
Создание шаблона для отображения записи блога с использованием Flask и Jinja2. Реализация базовой структуры приложения, шаблонов для отображения постов и комментариев.

**Стек:** Flask, Jinja2, Bootstrap 5

#### [Лабораторная работа №2](https://web-dev.deev.space/lab2)
Работа с данными запроса. Реализация обработки параметров URL, заголовков, cookies и форм. Валидация номера телефона на стороне сервера.

**Стек:** Flask, регулярные выражения

#### [Лабораторная работа №3](https://web-dev.deev.space/lab3)
Реализация аутентификации пользователей с использованием Flask-Login. Создание системы входа, защищенных страниц и управления сессиями.

**Стек:** Flask, Flask-Login, session management

#### [Лабораторная работа №4](https://web-dev.deev.space/lab4)
Разработка CRUD-приложения для управления учетными записями пользователей. Работа с базой данных, валидация данных, хеширование паролей.

**Стек:** Flask, Flask-SQLAlchemy, MySQL, bcrypt

#### [Лабораторная работа №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
Решение 20 задач на Python: базовые алгоритмы, работа с файлами, регулярные выражения, структуры данных. Покрытие тестами с использованием pytest (60+ тестов).

**Темы:** базовый синтаксис Python, работа с файлами, алгоритмы, структуры данных

#### Домашнее задание №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

## Лицензия и использование

Данный репозиторий создан в образовательных целях. Код доступен для изучения и адаптации без указания авторства.

---

<div align="center">
  <sub>⭐ Если проект оказался полезным, поставьте звездочку на GitHub!</sub>
  <p><sub>Создано с ❤️ от вашего дорогого - <a href="https://deev.space">deev.space</a> ©</sub></p>
</div>
