В рамках дипломного проекта вам необходимо разработать приложение, предоставляющее удобный доступ к кулинарной книге.
В приложении пользователи могут создавать свои собственные рецепты с описанием шагов приготовления, указанием категорий
Обязательный функционал:
- CRUD для списка рецептов + фильтры и поиск
- Данные доступны при перезапуске приложения (предусмотреть хранение на диске)
- Минимум 2 элемента нижнего меню - рецепты и избранное. Пустого экрана при этом быть не должно. В случае отсутствия данных отображать заглушку
- Валидация при выборе фильтров и создании/редактирования рецептов должна быть протестирована при помощи unit тестов (возможно, будет проще вынести эти функции в отдельный файл/класс). Необходимо добиться 100% покрытия
Если какой-то функциональности вам будет не хватать, можете обратиться к дипломному руководителю по вопросам её добавления.
Далее рассмотрим отдельно каждый элемент приложения
Каждый элемент списка содержит название, имя автора и категорию
Доступные категории:
- Европейская
- Азиатская
- Паназиатская
- Восточная
- Американская
- Русская
- Средиземноморская
По нажатию на элемент списка должен открываться экран детального просмотра рецепта. В правом верхнем углу должна быть кнопка вызова меню. В меню должны быть пункты удалить и изменить. По долгому нажатию на элемент списка должен активироваться режим перемещения, чтобы поменять порядок рецептов при помощи drag and drop, либо вспомогательных кнопок. В правом нижнем углу добавить кнопку в виде тоггла, которая добавляет/удаляет рецепт в избранное
В верхней, либо нижней части экрана должна располагаться строка поиска, которая фильтрует рецепты по названию. При этом, если строка пустая, то показываются все элементы
Справа от строки поиска требуется поместить кнопку перехода к экрану фильтров
Отображает название, автора, категорию и детальную информацию об этапах приготовления блюда в виде вертикального списка, либо карусели. Каждый этап может включать в себя картинку
Позволяет изменить всю информацию о рецепте. Следует также предусмотреть возможность менять порядок шагов. Нельзя оставить поля пустыми, хотя бы один шаг должен быть в рецепте.
Аналогичен экрану редактирования, но при его открытии все поля не заполнены, а при сохранении происходит создание нового рецепта
Представляет из себя список чекбоксов/чипсов из категорий. По умолчанию выбраны все категории. Нельзя убрать выбор из всех чекбоксов.
И помните: в случае возникновения вопросов, вы всегда их можете задать в канале Slack.
Ваша ключевая задача - разработать полностью функционирующее приложение, самостоятельно выбрав, какую часть функциональности вы реализуете (можно реализовывать не всё).
Задача разложена на 3 этапа:
- Планирование.
- Непосредственно выполнение работы.
- Сдача работы.
После начала работы над дипломом в течение 3 рабочих дней вы должны сдать руководителю план работ, в котором описано:
- какие функции будет реализовывать ваше приложение;
- какие инструменты вы будете использовать (библиотеки и т.д.);
- интервальная оценка затрат на реализацию с учётом рисков (в часах);
- план сдачи работ (когда будут выполнены работы и будет готова итоговая версия приложения).
Важно: дипломный руководитель выступает в роли представителя по стороны Заказчика, поэтому именно он определяет правила выполнения и сдачи работ. Ему же вы можете задавать вопросы по поводу того, как реализовать ту или иную функциональность. И он же определяет, правильно вы её реализовали или нет. Любые вопросы, которые не освещены в данном документе, стоит уточнять у руководителя. Если его требования/указания расходятся с указанными в данном документе, то приоритет имеют требования/указания руководителя.
На этом этапе вы непосредственно выполняете работу. При этом вы можете консультироваться с руководителем по поводу вопросов, требующих уточнения.
Прикладываете ссылку и скриншоты (можно видео) ключевых моментов работы, чтобы руководителю не приходилось с нуля заполнять приложение данными.
- Выполнены минимальные требования к работе.
- Приложение полностью функционирует (нет логически недоделанных частей, заглушек,
TODO
и т.д.). - Нет явных изъянов в архитектуре, "плохо пахнущего кода", нигде не едет вёрстка, противоречий с Design Guidelines, используются современные инструменты и библиотеки.
Что поможет решить большинство частых проблем:
- Попробовать найти ответ сначала самостоятельно в интернете или в материалах курса и только после этого спрашивать у дипломного руководителя. Скилл поиска ответов пригодится вам в профессиональной деятельности.
- Если вопросов больше одного, то присылайте их в виде нумерованного списка. Так дипломному руководителю будет проще отвечать на каждый из них.
- При необходимости прикрепите к вопросу скриншоты и стрелочкой покажите, где не получается. Программу для этого можно скачать здесь https://app.prntscr.com/ru/
Что может стать источником проблем:
- Вопросы вида «Ничего не работает. Не запускается. Всё сломалось». Дипломный руководитель не сможет ответить на такой вопрос без дополнительных уточнений. Цените своё время и время других.
- Откладывание выполнения курсового проекта на последний момент.
- Ожидание моментального ответа на свой вопрос. Дипломные руководители - работающие разработчики, которые занимаются, кроме преподавания, своими проектами. Их время ограничено, поэтому постарайтесь задавать правильные вопросы, чтобы получать быстрые ответы :)