Skip to content

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

Notifications You must be signed in to change notification settings

marchenkovdmitry/LightweightSchedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightweightSchedule

previewImgMain

Что это?

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

Для чего оно?

Это расписание было создано из-за крайней неудобности пользования расписанием, которое выложено на сайте университета. Приходилось нарезать его на картинки и носить с собой на телефоне, что очень неудобно. Поэтому пришла идея сделать веб-версию. Главным требованием была кроссбраузерность/кроссплатформенность, и малый размер. В ходе разработки добавлялись всякие приятные мелочи и исправлялись ошибки.

Функционал

  1. Можно включить/выключить отображение бокового меню и/или подсветки числителей/знаменателей. Выбор пользователя сохраняется в html5 localDataStorage и не сбрасывается при повторной загрузке страницы.
  2. Автоматическое скрытие бокового меню на низком разрешении.
  3. Полные ФИО преподавателй при наведении мыши на сокращенные ФИО. (По касанию в мобильной версии)
  4. Изменяемый пользователем фон (Светлая (включена по умолчанию) и темная версия)
  5. Автоматический скроллинг до текущего дня недели. В выходные выключается, кнопка включения/выключения автоскроллинга скрывается.
  6. Навигация по предметам с клавиатуры (1-понедельник, 5-пятница итд.)
  7. Автоматическое определение числителя/знаменателя недели и подсветка нужных предметов (Можно отключить)
  8. Работает и в оффлайне (Использует Application Cache API)

Технические детали / исправления

  1. Все иконки, кроме фона, на svg (от англ. Scalable Vector Graphics)
  2. Для большей плавности прикрутил transition к элементам интерфейса.
  3. Оптимизировал время анимации opacity, для визуального ускорения работы интерфейса.
  4. Все функции переписаны с jQuery на чистый JavaScript. В результате код сбросил около 70кб, что для медленного мобильного интернета весьма критично.
  5. Оптимизированы CSS селекторы.
  6. Выравнивание кнопок в мобильной версии на flexbox.
  7. Добавлены иконки во всех мыслимых разрешениях для любого типа устройств. Теперь не стыдно добавить в закладки :)
  8. Отдаваемые пользователю html/css/js сжаты.
  9. Исправлен баг с кликабельными ссылками меню, при отсутствующем оформлении меню.
  10. Сменил хостинг с облачного хранилища selectel на elasticweb (nginx), что существенно улучшило время загрузки (среднее время ответа сервера 8ms).
  11. Установил полученный еще два месяца назад SSL сертификат.
  12. Создан поддомен http://raspisanie.marchenkovdmitry.com
  13. Поправлены обьявления переменных и код переведен на "use strict"
  14. Добавлены кнопки изменения подсветки и фона в мобильной версии.
  15. Поправлена подсветка на темной теме (был реверс цвета числителей/знаменателей)
  16. Оптимизация производительности (Теперь на телефонах работает со скоростью света)
  17. Почти все условия переписаны на switch (до +30% улучшение производительности на gecko)
  18. Плавное изменение фона на transition.
  19. Переписано определение четности недели (расширен стандартный объект Date())

Живое демо

http://marchenkovdmitry.com/projects/raspisanie/ зеркало: http://raspisanie.marchenkovdmitry.com

Скриншоты

previewImg1 previewImg2 previewImg3 previewImg4 previewImg5 previewImg6

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published