SUAI pizza
Цель работы
Разработать информационную систему SUAI pizza
- сервис доставки пиццы.
Описание системы
Пользовательские роли
В системе предусмотрены две пользовательские роли:
- Администратор - контролирует текущие заказы и изменяет их статус, имеет возможность добавлять новые категории и блюда, отвечает Клиентам на возникшие у них вопросы
- Клиент - может оформить заказ, узнать его статус, или задать интересующий вопрос у Администратора
Пользовательские интерфейсы
Пользовательские сценарии
Клиент
При переходе на сайт, Клиенту необходимо зарегистрироваться. Для этого необходимо нажать кнопку SingUp
в верхнем правом углу, а после ввести все необходимые данные. После успешной регистрации Клиент может авторизоваться и полностью воспользоваться функционалом сайта - для этого нужно нажать кнопку Login
в верхнем правом углу.
Чтобы сделать заказ, нужно перейти в категории, выбрать понравившуюся пиццу и добавить ее в корзину. После этого в корзине окончательно оформить заказ, указав все нужные данные для доставки. Список всех совершенных заказов хранится в разделе Your Orders
.
Также клиент имеет возможность обратиться к администрации пиццерии через форму Contact Us
, с указанием конкретного номера заказа - orderId
.
Дополнительно реализован поиск по товарам. При запросе в строке Search
Клиент может получить как категорию пиццы, так и конкретную пиццу.
Администратор
Панель администратора находится по отдельной ссылке и не видна обычным клиентам (/admin
). У Администратора нет регистрации, предусмотрена только авторизация - если сильно нужно зарегистрировать нового Админа, то это можно сделать через внесение новых данных в БД, с выставлением поля userType=1
, где 1 - Админ, 0 - Клиент.
В разделе Order Details
Администратор может просматривать содержимое всех заказов, а также менять их статусы. При установке определенного статуса, открывается возможность назначить курьера, указывая его данные.
В разделе Category
Администратор может добавлять/изменять/удалять категории пицц - указывая название, описание а также изображение.
В разделе Item
Администратор может добавлять/изменять/удалять конкретные пиццы - указывая название, описание а также изображение.
Администратор видит всех зарегистрированных пользователей в системе. Он может менять информацию о них - имя, фото, контактные данные, а также изменять их привилегии - повышать с Клиента до Администратора. Также он может создать нового пользователя, минуя окно Sign Up
.
Также есть раздел где можно давать обратную связь Клиентам, в нём отображаются все сообщения от Клиентов, а также при нажатии на кнопку History
можно увидеть все ответы, которые Администратор послал Клиентам.
Компоненты системы
Используемый стек технологий:
- Apache
- PHP 7.2.24
- JavaScript
- MySQL 14.4
- JQuery 3.4.1
- Popper 1.16.0
- Bootstrap 4.4.1
Для удобства, наглядности, а также лучшей читаемости, весь код разбит на несколько файлов. Файлы можно разбить по группам:
- элементы пользовательского интерфейса
- админ-панель
- регистрация и авторизация
Схема базы данных
Другие фичи
Swagger API
CI/CD
CI/CD подход реализован через Github Actions. При каждом пуше tag начинающегося с v*, на Github автоматически создается Release с указанием тэга.
SSL-сертификат
SSL-сертификат позволяет устанавливать безопасное HTTPS соединение между пользователем и сайтом. Выдан при помощи Let's Encrypt Cert-bot.
Кастомный домен
Добавлен кастомный домен r0binak.design
через внесение A-записей на DNS серверах.
Яндекс Метрика
Добавлен инструмент веб-аналитики, который помогает получать наглядные отчеты, видеозаписи действий посетителей, отслеживать источники трафика и оценивать эффективность онлайн и офлайн-рекламы.
Как локально поднять это?
- Установить W/L/M AMP
- Склонировать репозиторий
- Переместить локальный репозиторий в папку, где хостятся локальные проекты
- Открыть браузер и перейти по нужному адресу