Цель проекта - разработать систему для приготовления коктейлей из ингредиентов, выбранных пользователем (далее Система). Пользователь может ознакомиться с историей коктейля, а также узнать кто из знаменитостей предпочитает его. Помимо этого в Системе должен быть предусмотрен личный аккаунт пользователя, для хранения его избранных напитков.
Система состоит из следующих основных функциональных блоков:
- Регистрация и авторизация;
- Конструктор коктейля;
- Функционал с информацией про напиток;
- Все ингредиенты;
- Избранные напитки пользователя.
Система предусматривает один тип пользователя, который имеет доступ к своему личному кабинету с избранными напитками.
Для регистрации в Системе пользователю необходимо указать ряд данных:
- username - обязательное поле;
- password - обязательное поле;
- confirm password - обязательное поле.
Система не допускает повтор username разных пользователей
При вводе пользователем поля username необходимо организовать "приветствие".
Для авторизации в Системе пользователю необходимо указать:
- username - обязательное поле;
- password - обязательное поле.
Далее происходит поиск по базе данных пользователя с указанным username.
В случае, если пользователя не существует, происходит предупреждение об этом.
Конструктор коктейля подразумевает отдельную вкладку в Системе. Имеется возможность выбора имеющихся ингредиентов, дополнительных опций, формата коктейля.
По клику на коктейль пользователь должен направляться на личную страницу выбранного коктейля. (Функционал с информацией про напиток)
Должен быть сделан поиск по различным параметрам. Для вывода данных необходимо нажать либо Enter, либо предложенную снизу кнопку. Предусмотреть вывод ошибки при случае, когда коктейль не найден.
Информация про напитки должна включать в себя:
- Состав;
- История напитка;
- Предпочтения знаменитостей;
- Отзыв других пользователей;
- Рецепт приготовления напитка;
- Крепость напитка;
- Фотографию напитка.
Все ингредиенты подразумевают отдельную вкладку в Системе, где пользователь может просмотреть все ингредиенты которые могут понадобиться для приготовления напитка.
Данная вкладка подразумевает различные категории и крепость ингредиента.
Необходимо реализовать поиск по всем доступным параметрам таким, как категория, крепость, название ингредиента.
Для вывода данных необходимо нажать либо Enter, либо предложенную снизу кнопку. Предусмотреть вывод ошибки при случае, когда ингредиент не найден.
Авторизация
- Не заполнение всех данных (login, password);
- Не совпадение пароля/аккаунта с базой данных;
- Отсутствие аккаунта в базе данных.
Регистрация
- Не заполнение всех данных (login, password, confirm password);
- При переходе на вкладку регистрации, пользователь должен подтвердить свой возраст всплывающим окном;
- Не совпадение полей password и confirm password;
- Пароль должен включать в себя минимум 8 символов, не являющимися только цифрами;
- Отсутствие подтверждения пользовательского соглашения и политики конфиденциальности.
В случае возникновения данных ситуаций Пользователь должен быть информирован выскакивающим предупреждением.
Для реализации Системы предлагается следующий стек технологий:
-
Бэкенд:
- Язык Java 11
- Фреймворк JavaFX
- БД MySQL (Таблицы: User, Ingredients, Recipe, Cocktails)
-
Фронтенд:
- Css
-
Все логические задачи необходимо выполнять в разных пакетах
-
Каждая задача подразумевает создание нового метода
-
Код необходимо комментировать
-
Следует избегать глубокой вложенности условных и циклических конструкций: вложенность блоков должна быть не более трех
-
Следует избегать длинных функций: текст функции должен умещаться на один экран (размер текста не должен превышать 25–50 строк)
Минимализм, лаконичность, акцент на информацию. Белый фон. Должен присутствовать логотип Системы где-то на странице. Логотип надо разработать в рамках этого проекта.