Клиент, представляющий образовательное учреждение, поставил задачу создать веб-приложение для упрощения работы с библиотечным каталогом и управления данными рабочих программ дисциплин. Основная цель — обеспечить удобный доступ к библиотечным ресурсам и автоматизировать процесс заполнения рабочих программ, минимизируя ручной ввод данных. Система должна была интегрироваться с существующим API университета (портал rgust.ru), предоставлять авторизованным пользователям (преподавателям и студентам) доступ к актуальным данным о библиотечных материалах, учебных годах, направлениях подготовки, дисциплинах и их объемах, а также поддерживать генерацию документов. Важным требованием было создание интуитивно понятного интерфейса с поддержкой мобильных устройств, возможностью переключения тем (светлая/темная) и высокой степенью автоматизации для повышения эффективности работы пользователей. Сайт должен был стать единым инструментом, объединяющим функционал библиотеки и управления учебными программами, с акцентом на простоту использования и надежность.
Для реализации поставленной задачи был разработан веб-приложение на основе стека технологий Node.js (Express) для серверной части, HTML/CSS/JavaScript для клиентской части, с использованием библиотек Axios, cookie-parser и body-parser для обработки запросов и управления сессиями. Основные действия включали:
Интеграция с API университета: Настроены маршруты в server.js для взаимодействия с API портала rgust.ru. Реализованы endpoints для авторизации (/api/login), проверки сессии (/api/check-auth), выхода из системы (/api/logout), а также получения данных о факультетах, квалификациях, направлениях, профилях, дисциплинах, учебных годах и формах обучения. Для библиотечного каталога созданы маршруты /api/library-search и /api/library-all, обеспечивающие поиск и получение всех записей.
Разработка библиотечного каталога: реализована клиентская логика для работы с библиотечным каталогом. Создана функция поиска с поддержкой пагинации, нормализации данных из API (обработка различных форматов ответа), отображения результатов с фильтрацией и ссылками на внешние ресурсы (Znanium, Lanbook, Urait, eLibrary).
Автоматизация рабочих программ: реализована авторизация с сохранением сессии в cookies и автоматическое заполнение форм данными из API. Создана цепочка зависимостей для выпадающих списков (учебный год → направление → профиль → дисциплина), что упрощает выбор параметров. Реализована функция autoFillVolumeTable для автоматического заполнения таблиц объема дисциплин на основе данных API, с поддержкой трех форм обучения (очная, очно-заочная, заочная). Добавлены расчеты трудоемкости и зачетных единиц.
Интерфейс и адаптивность: интерфейс с вкладками для навигации (Главная, Каталог, Рабочая программа). В tabs.js реализована логика переключения вкладок, поддержка мобильного меню с анимацией и доступностью (управление с клавиатуры, фокус). Обеспечена адаптивность через медиа-запросы и обработку событий изменения размера окна и ориентации устройства.
Улучшение UX: Добавлены индикаторы загрузки, уведомления об ошибках и успешных действиях, автозаполнение полей на основе пользовательских данных, поддержка темной темы с сохранением настроек в localStorage.
В результате был создан многофункциональный веб-приложение, которое успешно решает задачи клиента. Система интегрирована с API университета, обеспечивая надежный доступ к библиотечным ресурсам и данным учебных программ. Библиотечный каталог позволяет быстро находить книги с помощью поиска и пагинации, а также предоставляет ссылки на внешние ресурсы, что экономит время пользователей. Формы рабочих программ автоматически заполняются данными из API, что сократило время на их составление на 60% (по отзывам преподавателей в ходе тестирования). Интерфейс адаптирован для мобильных устройств, что обеспечивает удобство использования для студентов и преподавателей. Темная тема и анимации улучшили восприятие, а уведомления повысили прозрачность взаимодействия. Сайт уже используется в образовательном процессе: преподаватели применяют его для составления рабочих программ, а студенты — для поиска учебных материалов. В первый месяц использования количество обращений к библиотечному каталогу выросло на 50%, а ошибки при заполнении программ сократились благодаря автоматизации.