README.md

«Яркий День» — агентство по организации праздников

Учебный полнофункциональный сайт для практики. Проект объединяет 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-деплоя. После публикации репозитория:

  1. Создайте аккаунт RelaxDev.
  2. Добавьте проект и подключите GitFlic/GitHub-репозиторий.
  3. Выберите Docker / Dockerfile (либо автоопределение, если платформа корректно распознала Dockerfile).
  4. Задайте переменные окружения:
    • SECRET_KEY — длинная случайная строка;
    • DEBUG=0;
    • ALLOWED_HOSTS=.relaxdev.ru (после выдачи точного домена можно указать его явно);
    • CSRF_TRUSTED_ORIGINS=https://*.relaxdev.ru;
    • SQLITE_PATH=/data/db.sqlite3 — если подключено постоянное Storage в /data.
  5. Убедитесь, что платформа передаёт PORT автоматически. start.sh использует его при запуске Nginx.
  6. Запустите деплой и откройте выданный HTTPS-адрес.
  7. Скопируйте ссылку на сайт и на публичный репозиторий в 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-репозитория.
Описание
Агентство по организации праздников
Конвейеры
0 успешных
0 с ошибкой
Разработчики