«Яркий День» — агентство по организации праздников
Учебный полнофункциональный сайт для практики. Проект объединяет Python / Django, JavaScript и PHP, содержит систему контента, роли пользователей, внутренние сообщения, поиск, новостную ленту, форму заявки, калькулятор, карту сайта, собственную 404 и отдельный режим для слабовидящих.
Что реализовано
- 5 направлений услуг и 25 статей — по 5 материалов в каждом направлении;
- лента из 5 новостей;
- стандартное оформление и специальный режим для слабовидящих с крупным шрифтом, повышенным контрастом, отключением изображений, keyboard focus и skip-link;
- самостоятельная регистрация клиента;
- создание пользователя из учётной записи сотрудника;
- роли «Клиент», «Сотрудник», «Администратор»;
- внутренняя система сообщений;
- форма контактов/заявок;
- поиск по статьям и новостям;
- JavaScript-интерфейс и PHP 8 модуль расчёта бюджета (
/php/estimate.php); - карта сайта
/site-map/; - собственная страница 404;
- адаптивная вёрстка для телефона и ПК;
- Django Admin для управления контентом;
- Dockerfile для единого запуска Django + PHP-FPM + Nginx.
Режим для слабовидящих разработан с ориентацией на требования ГОСТ Р 52872-2012. Проект не проходил формальную сертификацию на соответствие стандарту.
Демонстрационные аккаунты
| Роль | Логин | Пароль |
|---|---|---|
| Клиент | client |
Client2026! |
| Сотрудник | employee |
Employee2026! |
| Администратор | siteadmin |
Admin2026! |
Данные создаются командой python manage.py seed_data. На публичном постоянном сайте пароли следует сменить после защиты проекта.
Локальный запуск без Docker
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
# source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py seed_data
# Windows PowerShell:
$env:DEBUG="1"
# Linux/macOS:
# export DEBUG=1
python manage.py runserver
Откройте http://127.0.0.1:8000/. При таком режиме Django работает полностью, а калькулятор использует JavaScript-fallback, потому что встроенный сервер Django не запускает PHP.
Полный запуск через Docker
docker build -t holiday-agency .
docker run --rm -p 8080:8080 \
-e PORT=8080 \
-e SECRET_KEY='replace-this-key' \
-e ALLOWED_HOSTS='localhost,127.0.0.1' \
holiday-agency
Откройте http://127.0.0.1:8080/. В Docker работает весь стек, включая PHP-калькулятор.
Размещение в GitFlic / GitHub
git init
git add .
git commit -m "init: сайт агентства праздников"
git branch -M main
git remote add origin <URL_ВАШЕГО_ПУБЛИЧНОГО_РЕПОЗИТОРИЯ>
git push -u origin main
Далее делайте отдельные реальные коммиты по ходу практики. Рекомендуемый план — в docs/GIT_WORKFLOW.md.
Бесплатный хостинг в РФ: RelaxDev
Проект подготовлен для Docker-деплоя. После публикации репозитория:
- Создайте аккаунт RelaxDev.
- Добавьте проект и подключите GitFlic/GitHub-репозиторий.
- Выберите Docker / Dockerfile (либо автоопределение, если платформа корректно распознала Dockerfile).
- Задайте переменные окружения:
SECRET_KEY— длинная случайная строка;DEBUG=0;ALLOWED_HOSTS=.relaxdev.ru(после выдачи точного домена можно указать его явно);CSRF_TRUSTED_ORIGINS=https://*.relaxdev.ru;SQLITE_PATH=/data/db.sqlite3— если подключено постоянное Storage в/data.
- Убедитесь, что платформа передаёт
PORTавтоматически.start.shиспользует его при запуске Nginx. - Запустите деплой и откройте выданный HTTPS-адрес.
- Скопируйте ссылку на сайт и на публичный репозиторий в
docs/REPORT_SOURCE_DATA.md, затем в исходные данные отчёта.
Если постоянное Storage не подключать, приложение всё равно запустится, но новые заявки/сообщения могут теряться после пересборки контейнера. Демонстрационные статьи и учётные записи будут восстановлены командой seed_data.
Материалы для отчёта
docs/REPORT_SOURCE_DATA.md— исходные данные, роли и сценарии создания пользователей;docs/PROMOTION_PLAN.md— план продвижения;docs/ECONOMIC_EFFICIENCY.md— анализ экономической эффективности;docs/GIT_WORKFLOW.md— план ведения Git-репозитория.