pwa-приложуха для студентов рыбинского авиационного универа (РГАТУ им. Соловьёва). интерактивные карты этажей, справочник кафедр, инструкции по документам — всё это работает офлайн.
- карта 5 этажей — кликаешь по комнатам, получаешь инфу, можно зумить и таскать
- поиск — по кабинетам, кафедрам, документам, руководству
- 3 института, 14 кафедр — с контактами и расположением
- 12 инструкций — как получить справку, обходной, зачётку и тд
- контакты — телефоны, адреса, почта, соцсети, горячие линии
- офлайн — работает без интернета после первой загрузки
- pwa — ставится на телефон как обычное приложение
| институт | цвет | этаж |
|---|---|---|
| ИАТИФ (авиац. технологии) | синий | 3 |
| ИИТСУ (информ. технологии) | зелёный | 4 |
| ИНО (непрерывное образование) | фиолетовый | 2 |
rgatu-guide/
├── parser/
│ └── parse.js # парсер данных с сайта ргату (node.js)
├── .github/workflows/
│ ├── deploy.yml # деплой на github pages
│ └── update-data.yml # автообновление данных раз в неделю
└── src/ # тут всё что едет на github pages
├── index.html
├── manifest.json
├── sw.js # service worker
├── css/style.css
├── js/app.js
├── data/ # json с данными
├── maps/ # svg карты этажей (5 штук)
└── icons/ # иконки pwa
cd src
python -m http.server 8080
# открой http://localhost:8080данные в src/data/ — обычные json файлы, можно редактировать руками. или запустить парсер:
cd parser
npm install
node parse.js # всё
node parse.js --data-only # только json
node parse.js --svg-only # только картыпосле обновления не забудь поменять версию в src/sw.js (CACHE_NAME), иначе юзеры увидят старое.
- чистый js без фреймворков
- svg карты с viewBox зумом
- service worker: cache first для статики, network first с таймаутом 3с для навигации
- mobile-first, работает от 320px