16 KiB
Product
Platform
web
Users
Основная аудитория — студенты всех факультетов Полоцкого государственного университета. Пользователь подтвердил этот охват при инициализации контекста 15 октября 2026 года.
Первый проверенный сценарий — ФЭФ, группа 23-БА. Это начальная группа для проверки качества, а не ограничение аудитории продукта.
Product Purpose
Сделать университетское расписание из Word удобным для просмотра со смартфона. Студент выбирает свою группу и читает занятия по дням, без необходимости разбирать большую таблицу Word на маленьком экране.
Успешный основной сценарий: найти расписание своей группы, понять время, предмет, преподавателя, аудиторию и условия проведения занятия; при необходимости сверить запись с исходным документом.
Positioning
Независимый PWA-клиент для существующих расписаний ПГУ. Механизм продукта — преобразование таблиц Word из университетского источника в структурированное расписание с сохранением исходных условий и доступа к оригиналу.
Университет остаётся источником данных. Официальный статус приложения и партнёрство с университетом не подтверждены; такие заявления добавлять нельзя.
Operating Context
- Университет публикует документы в публичном каталоге Nextcloud. Сервер сам выбирает папку текущего учебного года (с 1 сентября) и находит таблицу недель и звонков по смыслу имени; состояние источников видно в
/api/health. - Каталог организован по факультету, форме обучения, разделу и курсу. Один Word-файл может содержать несколько групп, общие занятия и подгруппы.
- Основной пользовательский язык текущего приложения — русский. Календарные подписи используют часовой пояс Europe/Minsk.
- Существуют два входа: выбор документа университета и импорт собственного Word с предпросмотром перед сохранением.
- Открытое расписание можно сохранить в браузере и просматривать при недоступной сети. Обновление из университетского источника требует подключения.
- Помимо основного расписания пользователь может искать предмет, преподавателя или аудиторию, переключать дни и открывать полную исходную запись.
Capabilities and Constraints
Реализованный MVP
- Просмотр по дням и на неделю, поиск и ссылка на оригинал Word.
- Выбор группы — отдельный экран: поиск по номеру группы во всём каталоге, недавние группы, просмотр каталога по факультету, курсу и форме. Студент думает группами, а не файлами: имена документов в выборе не показываются. Первый запуск не открывает чужую группу.
- Календарь учебных недель: переключатель недель с датами, режим «По неделям» (только занятия выбранной недели) и режим «Все строки Word» для сверки. Занятия других недель доступны в свёрнутом блоке, у карточек — статус по датам, в деталях — сетка недель семестра.
- Номера пар и текущая пара по университетскому расписанию звонков.
- Список изменений для группы при перепубликации документа (сравнение с копией на устройстве).
- Выбор своей подгруппы и скрытие отдельных занятий; хранятся только в браузере.
- Ссылка и QR-код на расписание группы для распространения внутри группы; личные настройки по ссылке не передаются.
- Поиск по университету: занятия преподавателя или аудитории на дату и свободные аудитории на пару, по всем документам каталога, с явной оговоркой «по расписаниям из Word» и числом учтённых документов. Только онлайн.
- Раздел сессии: экзамены, зачёты и консультации группы с обратным отсчётом. Реальные документы экзаменационной сессии ещё не публиковались; распознавание проверено на образцах.
- Разбор
.docx, включая объединённые ячейки, общие занятия, отдельные колонки и альтернативные строки. Старые.docтребуют серверной конвертации через LibreOffice; максимальный размер импорта — 10 МБ. - Сохранение последних 12 расписаний и выбранной группы в текущем браузере. Очистка данных браузера удаляет сохранённые расписания.
- PWA с офлайн-кэшем интерфейса, иконок и локальных шрифтов. Установка на телефон требует подходящего браузера и HTTPS; разработка возможна на localhost.
- При недоступности источника сохранённые данные обозначаются явно. Кэширование не означает, что расписание проверено на актуальность.
- В текущем MVP нет учётных записей, платежей и аналитики. Загруженные пользователем Word-файлы не сохраняются на сервере; извлечённое расписание сохраняется в браузере. Сервер кэширует данные университетского каталога.
Точность и границы интерпретации
- Год документа каталога берётся из папки («2026–2027»), а не из шапки Word: в части файлов шапка осталась от прошлого года (26-КБ, 25-КБ — «2025/2026»).
- Даты занятий рассчитываются по университетской таблице «Расписание белых и зеленых недель» из корня того же каталога (файл от 26 августа 2026 года): неделя 1 — 01.09–06.09.2026 (начинается со вторника), нечётные недели белые, чётные зелёные, 18 недель до 03.01.2027. Звонки берутся из «Расписание звонков.docx» там же.
- Пометка недель в белой или зелёной строке относится только к неделям этого цвета («1-13н» в белой строке — недели 1, 3, …, 13). Проверка 16 октября 2026 года: все 53 пометки в цветных строках распознанных документов согласуются с этим правилом.
- Нераспознанная пометка (например, опечатка «6-12-16н») не скрывает занятие: оно показывается с предупреждением «сверьте с Word». Исходная пометка всегда видна в деталях.
- Таблица недель делится на семестры; расписание использует только недели своего семестра (по тексту Word, датам сессии или текущей дате). Вне своего семестра или без опубликованной таблицы приложение не угадывает даты и показывает все строки Word.
- Сохранённое расписание сверяется с каталогом при запуске: перепубликованный файл обновляется тихо, новый документ группы (следующий семестр или год) только предлагается, пропавший документ обозначается явно.
- Условия вроде
7,9,11н., конкретные даты, примечания, подгруппы и особое время занятия должны оставаться доступными. Неизвестное окончание занятия не выдумывается. - В общем файле студенту показываются занятия выбранной группы и общие занятия; дисциплины соседней группы не должны попадать в его расписание.
- Универсальность парсера для произвольных Word-документов не доказана. Нераспознанная структура должна давать понятную ошибку, а сложная запись — сохранять исходный текст для сверки.
- PDF, Excel и сканы пока не импортируются. Фоновое обновление при закрытом приложении не реализовано.
Evidence on Hand
README.md— текущие возможности, запуск и ограничения реализации.server/source.js,server/parser.js— фактический источник и правила извлечения данных.test/fixtures/— реальные Word-документы нескольких факультетов и метаданные источников; основной образец —fef-23-ba.docx.test/parser.test.js— проверки разделения групп, общих занятий, условий, времени и распознавания таблиц.VALIDATION.md— протокол первого этапа от 15 октября 2026 года: девять прошедших тестов, сборка, браузерные проверки и сохранённое расписание при остановленном сервере. В том снимке каталога было 113 Word-документов, для 23-БА распознано 33 записи. Это результаты того этапа, а не обещание неизменных данных источника.artifacts/mobile-390.jpg,artifacts/desktop-1440.jpg,artifacts/offline-390.jpg— снимки существующего интерфейса и состояния без сервера.- Публикация на HTTPS-хостинг, установка на физический телефон и Docker-сборка в указанном протоколе не подтверждены.
Product Principles
- Главная задача — быстро прочитать расписание своей группы на смартфоне.
- Достоверность важнее догадки: сохранять условия, примечания и возможность сверки с Word.
- Разделять данные групп корректно, сохраняя общие занятия.
- Делать сохранённое расписание доступным при сбое связи и ясно сообщать о непроверенной актуальности.
- Развивать общий клиент для всех факультетов; изменения парсинга проверять на реальных документах, включая исходный сценарий 23-БА.
Accessibility & Inclusion
Исходная потребность пользователя — удобное и понятное чтение на мобильном устройстве. При дальнейшей работе сохранять читаемый текст, доступные действия на узком экране и текстовые условия занятий: одного цвета строки недостаточно для объяснения расписания.
Отдельный обязательный уровень соответствия WCAG пользователем пока не установлен.
Brand Commitments
Пользователь закрепил Material 3 Expressive для PWA: крупный читаемый текст и функциональные подписи без декоративных слоганов. Главный экран содержит расписание; импорт, установка и сведения об источнике доступны через меню.
Open Decisions
- Таблица недель весеннего семестра и папка следующего учебного года ещё не опубликованы; автоматика рассчитана на тот же формат таблиц. Если университет его изменит, сервер сообщит «таблица не распознана», а приложение покажет строки Word до правки парсера.
- Хостинг, публичный адрес и порядок регулярной публикации не выбраны. Локальная сборка не означает опубликованный сервис.
- Другие языки, роли кроме студентов, уведомления и интеграции с календарями не утверждены как обязательные функции.