Простое и удобное расписание пар, которое имеет множество полезных и приятных функций. А также достаточно легкое, чтобы быстро работать на любом устройстве.
Это расписание было создано из-за крайней неудобности пользования расписанием, которое выложено на сайте университета. Приходилось нарезать его на картинки и носить с собой на телефоне, что очень неудобно. Поэтому пришла идея сделать веб-версию. Главным требованием была кроссбраузерность/кроссплатформенность, и малый размер. В ходе разработки добавлялись всякие приятные мелочи и исправлялись ошибки.
- Можно включить/выключить отображение бокового меню и/или подсветки числителей/знаменателей. Выбор пользователя сохраняется в html5 localDataStorage и не сбрасывается при повторной загрузке страницы.
- Автоматическое скрытие бокового меню на низком разрешении.
- Полные ФИО преподавателй при наведении мыши на сокращенные ФИО. (По касанию в мобильной версии)
- Изменяемый пользователем фон (Светлая (включена по умолчанию) и темная версия)
- Автоматический скроллинг до текущего дня недели. В выходные выключается, кнопка включения/выключения автоскроллинга скрывается.
- Навигация по предметам с клавиатуры (1-понедельник, 5-пятница итд.)
- Автоматическое определение числителя/знаменателя недели и подсветка нужных предметов (Можно отключить)
- Работает и в оффлайне (Использует Application Cache API)
- Все иконки, кроме фона, на svg (от англ. Scalable Vector Graphics)
- Для большей плавности прикрутил transition к элементам интерфейса.
- Оптимизировал время анимации opacity, для визуального ускорения работы интерфейса.
- Все функции переписаны с jQuery на чистый JavaScript. В результате код сбросил около 70кб, что для медленного мобильного интернета весьма критично.
- Оптимизированы CSS селекторы.
- Выравнивание кнопок в мобильной версии на flexbox.
- Добавлены иконки во всех мыслимых разрешениях для любого типа устройств. Теперь не стыдно добавить в закладки :)
- Отдаваемые пользователю html/css/js сжаты.
- Исправлен баг с кликабельными ссылками меню, при отсутствующем оформлении меню.
- Сменил хостинг с облачного хранилища selectel на elasticweb (nginx), что существенно улучшило время загрузки (среднее время ответа сервера 8ms).
- Установил полученный еще два месяца назад SSL сертификат.
- Создан поддомен http://raspisanie.marchenkovdmitry.com
- Поправлены обьявления переменных и код переведен на "use strict"
- Добавлены кнопки изменения подсветки и фона в мобильной версии.
- Поправлена подсветка на темной теме (был реверс цвета числителей/знаменателей)
- Оптимизация производительности (Теперь на телефонах работает со скоростью света)
- Почти все условия переписаны на switch (до +30% улучшение производительности на gecko)
- Плавное изменение фона на transition.
- Переписано определение четности недели (расширен стандартный объект Date())
http://marchenkovdmitry.com/projects/raspisanie/ зеркало: http://raspisanie.marchenkovdmitry.com