Schedule — веб-приложение для публикации расписания занятий
  • PHP 88.5%
  • CSS 10.8%
  • JavaScript 0.7%
Найти файл
2026-09-01 22:11:39 +03:00
database/migrations Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
deploy Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
inc Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
public Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
tools Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
.gitignore Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
ADMIN-GUIDE-RU.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
CHANGELOG.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
INSTALL-RU.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
LICENSE Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
LICENSING-RU.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
README.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
SECURITY.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
THIRD-PARTY.md Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00
VERSION Release Schedule 1.0.1 2026-09-01 22:11:39 +03:00

Schedule

Schedule — веб-приложение для публикации учебного расписания. Оно работает на PHP и хранит данные в SQLite, поэтому отдельный сервер базы данных не требуется. Администратор ведёт группы, преподавателей, дисциплины, аудитории, сетку пар и учебные дни, а посетители смотрят опубликованное расписание с компьютера или телефона.

Текущая версия: 1.0.1.

Возможности

  • публичное расписание по датам и группам;
  • адаптивное отображение для телефона, планшета и компьютера;
  • на телефоне расписание открывается после выбора конкретной группы, без длинной страницы со всеми группами сразу;
  • справочники групп, преподавателей, дисциплин и аудиторий;
  • отдельная сетка пар для разных дней недели;
  • создание, копирование и публикация учебных дней;
  • защита от одновременного редактирования одного дня;
  • несколько пользователей панели управления;
  • настраиваемые название сайта, заголовок и подзаголовок публичной страницы;
  • браузерная установка с одноразовым ключом;
  • необязательный набор полностью вымышленных демонстрационных данных;
  • резервное копирование и перенос одной базы SQLite.

Требования

  • Linux-сервер;
  • PHP 8.2 или новее и PHP-FPM;
  • расширения PDO SQLite и mbstring;
  • max_input_vars в PHP-FPM не меньше 5000;
  • nginx;
  • SQLite 3;
  • HTTPS для внешнего доступа.

Schedule использует только SQLite. MySQL и MariaDB не требуются.

Быстрый старт

  1. Проверьте контрольную сумму архива.
  2. Распакуйте Schedule в отдельный каталог на сервере.
  3. Разрешите пользователю PHP-FPM запись только в storage/.
  4. Настройте nginx так, чтобы корневой папкой сайта была public/.
  5. Включите установщик одноразовым ключом и откройте сайт по HTTPS.
  6. Создайте первого администратора. При желании сразу добавьте демонстрационное расписание.
  7. После установки панель управления доступна по адресу /manage/.

Название сайта, заголовок и подзаголовок публичной страницы меняются в разделе «Настройки» панели управления.

Полная инструкция с командами для Debian 12/13 и примерами nginx находится в INSTALL-RU.md.

Демонстрационные данные

Во время установки можно включить флажок «Создать демонстрационный набор данных». По умолчанию он выключен.

Если включить флажок, Schedule создаст только вымышленные группы, преподавателей, дисциплины, аудитории, сетку пар, учебные дни и пример расписания. Для рабочей установки обычно оставляйте его выключенным.

Документация

  • INSTALL-RU.md — установка, HTTPS, резервное копирование, восстановление и обновление;
  • ADMIN-GUIDE-RU.md — работа в панели управления;
  • SECURITY.md — рекомендации по безопасной эксплуатации и сообщение об уязвимостях;
  • LICENSING-RU.md — пояснение лицензии на русском языке;
  • THIRD-PARTY.md — сторонние компоненты;
  • CHANGELOG.md — изменения версии 1.0.1.

Резервное копирование

Рабочая база находится в storage/schedule.sqlite3. Для резервной копии используйте команду SQLite .backup, а не обычное копирование работающего файла. Каталог резервных копий должен иметь права 0700, сами файлы — не шире 0600.

Если создан inc/config.local.php, сохраняйте его отдельно вместе с резервной копией базы. Подробные команды приведены в INSTALL-RU.md.

Обновление

Перед обновлением сделайте и проверьте резервную копию. Новый код готовьте в отдельном пустом каталоге. Перед переносом рабочей базы остановите PHP-FPM и задания обслуживания Schedule, затем выполните обновление базы и проверки SQLite.

Пошаговая процедура находится в INSTALL-RU.md.

Лицензия

Проект распространяется по PolyForm Noncommercial License 1.0.0. Бесплатное некоммерческое использование разрешено в пределах условий лицензии, в том числе образовательным учреждениям. Продажа и другое коммерческое использование за пределами разрешённых лицензией целей требуют отдельного разрешения правообладателя.

Официальный текст лицензии находится в LICENSE, пояснение на русском языке — в LICENSING-RU.md.

Автор

Разработка: Виталий Егоров.
E-mail: egorowitaliy@gmail.com