Фёдор Горбачев
Портфолио
ROOMLY (учебный проект)
Цель: ● Создать удобный, безопасный и функциональный сервис для бронирования переговорных комнат, который оптимизирует процесс планирования встреч и предоставляет пользователям персонализированные рекомендации. Задачи: ● Система бронирования переговорных комнат. Позволяет сотрудникам бронировать комнаты на определенное время; проверяет доступность комнат во избежание конфликтов бронирования. ● Управление пользователями. Регистрация, авторизация и аутентификация пользователей; ролевая модель (обычные пользователи и администраторы); суперпользователь (superadmin) для управления системой. ● Управление комнатами. Добавление, редактирование и удаление переговорных (для администраторов); просмотр списка комнат с их характеристиками (вместимость, оборудование). ● Безопасность. Защита от CSRF-атак (Flask-WTF); хеширование паролей (Bcrypt); валидация и санитизация ввода (регулярные выражения); защита от брутфорса (блокировка после 5 неудачных попыток входа); Content Security Policy (CSP) для защиты от XSS. ● Локальная работа в офисе. Использование SQLite как легковесной БД, не требующей отдельного сервера; запуск на локальном сервере (Flask debug=True для разработки). ● Логирование и аудит. Запись подозрительных действий в security.log; сохранение метаданных пользователей в metadata.txt. ● Удобство использования. Flash-сообщения для обратной связи с пользователем; сессии с таймаутом (30 минут неактивности); динамическое отображение бронирований в профиле. Технологии: Flask, SQLite, Bcrypt, Flask-WTF, CSRF-защита, Content Security Policy (CSP), logging, Jinja2.
Маркетплейс (проект с курсов)
Цель: ● Создать базовый маркетплейс для продавцов и покупателей. Задачи: ● Система размещения и поиска товаров. Позволяет продавцам добавлять товары (с фото, описанием, ценой и категориями); фильтрация и сортировка товаров (по цене, рейтингу, дате добавления); поиск по ключевым словам и тегам. ● Управление пользователями. Регистрация, авторизация и аутентификация (встроенная Django-аутентификация); разделение ролей: покупатели, продавцы, администраторы; суперпользователь (superadmin) для управления контентом и пользователями через Django Admin. ● Управление товарами и заказами. Добавление, редактирование и удаление товаров (для продавцов); корзина покупок и оформление заказа; история заказов в личном кабинете. ● Безопасность. Защита от CSRF-атак (встроенная в Django); хеширование паролей (django.contrib.auth); валидация и санитизация ввода (Django Forms, регулярные выражения); защита от брутфорса (возможность блокировки после нескольких неудачных попыток входа); Content Security Policy (CSP) для защиты от XSS (настраивается через middleware). ● Локальная разработка и тестирование. Использование SQLite как легковесной БД на этапе разработки; запуск на локальном сервере (python manage.py runserver); возможность перехода на PostgreSQL или MySQL для продакшена. ● Логирование и аудит. Запись действий администраторов в admin.log; сохранение метаданных пользователей (IP, время регистрации). ● Удобство использования. Flash-сообщения для обратной связи (Django Messages Framework); сессии с таймаутом (настраивается в settings.py); адаптивный интерфейс (HTML + CSS, в планах — мобильная версия). Технологии: Django (Python), Django ORM, HTML/CSS, CSP, CSRF-защита
ROOMLY (учебный проект)
Цель: ● Создать удобный, безопасный и функциональный сервис для бронирования переговорных комнат, который оптимизирует процесс планирования встреч и предоставляет пользователям персонализированные рекомендации. Задачи: ● Система бронирования переговорных комнат. Позволяет сотрудникам бронировать комнаты на определенное время; проверяет доступность комнат во избежание конфликтов бронирования. ● Управление пользователями. Регистрация, авторизация и аутентификация пользователей; ролевая модель (обычные пользователи и администраторы); суперпользователь (superadmin) для управления системой. ● Управление комнатами. Добавление, редактирование и удаление переговорных (для администраторов); просмотр списка комнат с их характеристиками (вместимость, оборудование). ● Безопасность. Защита от CSRF-атак (Flask-WTF); хеширование паролей (Bcrypt); валидация и санитизация ввода (регулярные выражения); защита от брутфорса (блокировка после 5 неудачных попыток входа); Content Security Policy (CSP) для защиты от XSS. ● Локальная работа в офисе. Использование SQLite как легковесной БД, не требующей отдельного сервера; запуск на локальном сервере (Flask debug=True для разработки). ● Логирование и аудит. Запись подозрительных действий в security.log; сохранение метаданных пользователей в metadata.txt. ● Удобство использования. Flash-сообщения для обратной связи с пользователем; сессии с таймаутом (30 минут неактивности); динамическое отображение бронирований в профиле. Технологии: Flask, SQLite, Bcrypt, Flask-WTF, CSRF-защита, Content Security Policy (CSP), logging, Jinja2.