Дипломное задание "NeRecipe" (Профессия Android Developer)

Легенда

В рамках дипломного проекта вам необходимо разработать приложение, предоставляющее удобный доступ к кулинарной книге.

В приложении пользователи могут создавать свои собственные рецепты с описанием шагов приготовления, указанием категорий

Обязательный функционал:

  1. CRUD для списка рецептов + фильтры и поиск
  2. Данные доступны при перезапуске приложения (предусмотреть хранение на диске)
  3. Минимум 2 элемента нижнего меню - рецепты и избранное. Пустого экрана при этом быть не должно. В случае отсутствия данных отображать заглушку
  4. Валидация при выборе фильтров и создании/редактирования рецептов должна быть протестирована при помощи unit тестов (возможно, будет проще вынести эти функции в отдельный файл/класс). Необходимо добиться 100% покрытия

Если какой-то функциональности вам будет не хватать, можете обратиться к дипломному руководителю по вопросам её добавления.

Далее рассмотрим отдельно каждый элемент приложения

Экран со списком рецептов

Каждый элемент списка содержит название, имя автора и категорию

Доступные категории:

  • Европейская
  • Азиатская
  • Паназиатская
  • Восточная
  • Американская
  • Русская
  • Средиземноморская

По нажатию на элемент списка должен открываться экран детального просмотра рецепта. В правом верхнем углу должна быть кнопка вызова меню. В меню должны быть пункты удалить и изменить. По долгому нажатию на элемент списка должен активироваться режим перемещения, чтобы поменять порядок рецептов при помощи drag and drop, либо вспомогательных кнопок. В правом нижнем углу добавить кнопку в виде тоггла, которая добавляет/удаляет рецепт в избранное

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

Справа от строки поиска требуется поместить кнопку перехода к экрану фильтров

Экран просмотра рецепта

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

Экран редактирования

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

Экран создания рецепта

Аналогичен экрану редактирования, но при его открытии все поля не заполнены, а при сохранении происходит создание нового рецепта

Экран фильтров

Представляет из себя список чекбоксов/чипсов из категорий. По умолчанию выбраны все категории. Нельзя убрать выбор из всех чекбоксов.

И помните: в случае возникновения вопросов, вы всегда их можете задать в канале Slack.

Задача

Ваша ключевая задача - разработать полностью функционирующее приложение, самостоятельно выбрав, какую часть функциональности вы реализуете (можно реализовывать не всё).

Задача разложена на 3 этапа:

  1. Планирование.
  2. Непосредственно выполнение работы.
  3. Сдача работы.

Планирование

После начала работы над дипломом в течение 3 рабочих дней вы должны сдать руководителю план работ, в котором описано:

  • какие функции будет реализовывать ваше приложение;
  • какие инструменты вы будете использовать (библиотеки и т.д.);
  • интервальная оценка затрат на реализацию с учётом рисков (в часах);
  • план сдачи работ (когда будут выполнены работы и будет готова итоговая версия приложения).

Важно: дипломный руководитель выступает в роли представителя по стороны Заказчика, поэтому именно он определяет правила выполнения и сдачи работ. Ему же вы можете задавать вопросы по поводу того, как реализовать ту или иную функциональность. И он же определяет, правильно вы её реализовали или нет. Любые вопросы, которые не освещены в данном документе, стоит уточнять у руководителя. Если его требования/указания расходятся с указанными в данном документе, то приоритет имеют требования/указания руководителя.

Выполнение работ

На этом этапе вы непосредственно выполняете работу. При этом вы можете консультироваться с руководителем по поводу вопросов, требующих уточнения.

Сдача работы

Прикладываете ссылку и скриншоты (можно видео) ключевых моментов работы, чтобы руководителю не приходилось с нуля заполнять приложение данными.

Критерии сдачи

  1. Выполнены минимальные требования к работе.
  2. Приложение полностью функционирует (нет логически недоделанных частей, заглушек, TODO и т.д.).
  3. Нет явных изъянов в архитектуре, "плохо пахнущего кода", нигде не едет вёрстка, противоречий с Design Guidelines, используются современные инструменты и библиотеки.

Как правильно задавать вопросы дипломному руководителю?

Что поможет решить большинство частых проблем:

  1. Попробовать найти ответ сначала самостоятельно в интернете или в материалах курса и только после этого спрашивать у дипломного руководителя. Скилл поиска ответов пригодится вам в профессиональной деятельности.
  2. Если вопросов больше одного, то присылайте их в виде нумерованного списка. Так дипломному руководителю будет проще отвечать на каждый из них.
  3. При необходимости прикрепите к вопросу скриншоты и стрелочкой покажите, где не получается. Программу для этого можно скачать здесь https://app.prntscr.com/ru/

Что может стать источником проблем:

  1. Вопросы вида «Ничего не работает. Не запускается. Всё сломалось». Дипломный руководитель не сможет ответить на такой вопрос без дополнительных уточнений. Цените своё время и время других.
  2. Откладывание выполнения курсового проекта на последний момент.
  3. Ожидание моментального ответа на свой вопрос. Дипломные руководители - работающие разработчики, которые занимаются, кроме преподавания, своими проектами. Их время ограничено, поэтому постарайтесь задавать правильные вопросы, чтобы получать быстрые ответы :)