Предпочтительно знать. HTML, CSS, JavaScript,
Также на выбор: ReactJS, VueJS, Angular, Material UI
Описание задания: ( дизайн прикрепляю ниже )
В ходе мероприятия мы ознакомились с основами концепции, проектирования и реализации PWA-приложений. Наконец, каждая группа будет реализовывать свою индивидуальную версию приложения Mensa. Заключительный проект имеет решающее значение для успешного завершения курса. Он состоит из трех частей: разработка, реализация и презентация. В группах по три вы реализуете приложение PWA, как описано ниже. Вы будете регулярно документировать свой прогресс с помощью git'а и загружать его в GitHub Classroom. Наконец, каждая группа представит результаты в презентации. Многие из требуемых функций приложения Mensa, а также навыки PWA, необходимые для их реализации, уже были представлены в ходе мероприятия. Теперь каждая группа будет реализовывать полнофункциональное приложение Mensa. Для этой цели каждая группа реализует приложение PWA, которое 1) реализует каталог обязательных требований и 2) реализует частично через концепции дизайна, разработанные каждой группой и подтвержденные пользовательскими исследовательскими испытаниями.
В курсе "Программирование мобильных приложений" мы рассмотрели концепцию мобильных приложений в дополнение к технической реализации. Цель - научить участников курса, как можно повысить актуальность и удобство использования мобильных приложений с помощью ориентированных на пользователя методов и дизайна, используя в качестве наглядного примера приложение для столовой.
Сервис открытого меню Основой любого увлекательного приложения является сервер. Приложения для обмена сообщениями, игры и т.д. используют один или несколько серверов для различных целей. Для реализации финального проекта будет использован сервис OpenMensa.org, с помощью которого можно будет запрашивать меню берлинских рефекторий. Услуга предлагает интерфейс REST, доступный только через HTTPS. Конечные точки, форматы запросов и ответы сервиса доступны по ссылке https://doc.openmensa.org/api/v2/.
Обязательные требования к реализации Должны быть реализованы следующие основные функции. Каждая группа сама решает, на каком экране и в какой форме функции должны быть интегрированы в концепцию дизайна, разработанную специально для каждой группы.
Должны быть реализованы следующие основные функции. На каком экране и в какой форме находится каждая группа, так как функции должны быть интегрированы в соответствующую концепцию дизайна, разработанную специально для каждой группы.
Имя и иконка: Придумайте красивое название для приложения (не: "Mensa App") и сгенерируйте индивидуальный значок.
Инициализация: Списки всех кафетериев (по крайней мере, в Берлине и Потсдаме) с именем, идентификатором, адресом, данными о местоположении (широта, долгота) должны храниться в базе данных приложения. База данных должна быть заполнена только при первом запуске приложения. После этого приложение будет работать с уже имеющимися в базе данных данными.
Пользовательские настройки: Определенные настройки, сделанные пользователем, должны храниться в приложении и оставаться доступными после его перезапуска. В качестве примера можно привести настройки: Любимое меню, любимые блюда и предпочтения в отношении уведомлений.
Обзор меню: Отражатели должны отображаться в обзоре с информацией из инициализированной базы данных.
Выбранный буфет: Пользователь может выбрать буфет, для которого отображаются блюда текущего дня и/или другого дня.
Перечень продуктов питания и определение цен на них: Для выбранного дня отображается список меню с ценой блюда. Планы питания трапезной можно получить через веб-сервис OpenMensa https://openmensa.org/api/v2/canteens/30/days/2019-11-18/meals, куда передается идентификатор трапезной и желаемая дата. Следует также учитывать дополнительную информацию (категория и примечания), предоставляемую службой.
Данные о местоположении: По крайней мере, в одном месте следует активно использовать данные о локализации/позиционировании, например, для идентификации и отображения пользователю ближайших к нему рефекторий.
Уведомления: Пользователь приложения Mensa должен не только иметь возможность использовать его для вызова меню, но и должен "умно" информировать пользователя, по крайней мере, об одном пункте посредством уведомлений. Поэтому приложение использует уведомления как минимум в одном месте. Пример: каждое утро пользователю отправляются последние блюда из выбранной любимой столовой.
Значимые сообщения об ошибках: Необходимо позаботиться о том, чтобы приложение не выбрасывало "неизвестные ошибки", не представляло пустой экран и не приводило к аварийному завершению работы. Вместо этого дайте пользователям значимое указание при возникновении ошибки, например, если в настоящее время нет местонахождения и/или подключения к Интернету.
Стратегии кэширования: соответствующие стратегии кэширования должны использоваться для различных ресурсов/артифактов.
Для поиска меню используется OpenMensa.org, с помощью которого можно динамически получать информацию о блюдах и столовых. Поэтому ни один веб-сервис не должен быть запрограммирован в рамках проекта.
Интерфейс сервера и способ запроса данных через него можно найти по адресу https://doc.openmensa.org/api/v2/.
Так как некоторые рефектории (например, в ГВС) закрыты из-за текущей ситуации и поэтому не предлагают питание, пожалуйста, используйте открытые рефектории, например, в Потсдаме (https://openmensa.org/c/55/2020-06-04). Очень полезной функцией в этом контексте является отображение того, какие рефектории открыты и когда.
В целях тестирования вы также можете получить доступ к данным из прошлого, например: https://openmensa.org/api/v2/canteens/30/days/2019-11-18/meals.
С этим ты получаешь, помимо всего прочего:
{
id: 4655104,
название: "Двойная салатная чаша",
категория: "Салаты",
Цены:
{
студенты: 3.15,
сотрудники: 6.3,
зрачки: ноль,
остальные: 6,95
}, заметки: [
}, "сельдерей",
"подсластитель",
"веган",
"зеленый (светофор)"
]
},