Задание - AnastasiaKhon/RestaurantGuide GitHub Wiki
Необходимо создать приложение для оценки различных заведений города - кафе, ресторанов, точек фаст-фуда, баров, клубов и т.п. Любой зарегистрированный пользователь может добавить заведение. Затем этому заведению зарегистрированные пользователи могут оставлять отзывы с рейтингом.
Общий рейтинг заведения рассчитывается как среднее арифметическое всех оценок, оставленных пользователями. Рейтинги округляются до десятичной части.
Дизайн, приведенный в виде мокапов является информационным и может быть изменен при желании. Главное, чтобы все выглядело аккуратно и ничего никуда не вылазило. Верстка может быть выполнена с помощью bootstrap или любого другого фреймворка.
Основные сущности системы:
Заведение
○ принадлежит одному Пользователю
○ содержит много Изображений
○ содержит много Отзывов
Пользователь
○ содержит много Отзывов
○ содержит много Заведений
○ содержит много Изображений
Изображение
○ принадлежит одному Заведению
○ принадлежит одному Пользователю
Список заведений
Главная страница для незарегистрированного пользователя
На главной странице - список всех заведений. При клике на изображение или название заведения производится переход на страницу просмотра заведения.
В меню - возможность перейти на страницу логина или зарегистрироваться. Если пользователь вошел на сайт, ему отображается опция "Выйти" (Logout) или "Создать новое заведение", которое ведет на страницу добавления заведения. Незарегистрированный пользователь не может попасть на страницу добавления заведения.
В меню также есть простая форма поиска. Поиск должен находить заведения по названию и описанию.
Главная страница для зарегистрированного пользователя
Список заведений должен иметь пагинацию - по 20 заведений на одной странице. Добавление заведения Форма добавления заведения доступна только зарегистрированным пользователям. Все поля являются обязательными к заполнению. В случае не заполнения какого-либо из полей должно появиться сообщение об ошибке валидации
Форма добавления заведения
Просмотр заведения
Просмотр заведения:
● фото, описание;
● рейтинги:
● список отзывов, отсортированный по дате добавления отзыва;
● форма рейтинга;
● форма добавления нового фото.
Страница просмотра заведения, оставления ревью и добавления фото
Необязательные пункты:
● Сделать галерею для всех добавленных фото.
● Сделать выбор рейтинга в виде выбора звезд на JS, вместо выпадающих меню.
● Если пользователь оставил отзыв, запрещать делать ему это второй раз для данного заведения. Вместо этого показывать кнопку удаления отзыва, чтобы он мог удалить старый и оставить новый отзыв.