New space pizza delivery!

Related tags

Laravel suai-pizza
Overview

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

Для удобства, наглядности, а также лучшей читаемости, весь код разбит на несколько файлов. Файлы можно разбить по группам:

  • элементы пользовательского интерфейса
  • админ-панель
  • регистрация и авторизация

Схема базы данных

photo_2021-12-15 23 41 07

Другие фичи

Swagger API

CI/CD

CI/CD подход реализован через Github Actions. При каждом пуше tag начинающегося с v*, на Github автоматически создается Release с указанием тэга.

SSL-сертификат

SSL-сертификат позволяет устанавливать безопасное HTTPS соединение между пользователем и сайтом. Выдан при помощи Let's Encrypt Cert-bot.

Кастомный домен

Добавлен кастомный домен r0binak.design через внесение A-записей на DNS серверах.

Яндекс Метрика

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

Снимок экрана 2021-12-25 в 11 45 10

Как локально поднять это?

  1. Установить W/L/M AMP
  2. Склонировать репозиторий
  3. Переместить локальный репозиторий в папку, где хостятся локальные проекты
  4. Открыть браузер и перейти по нужному адресу
You might also like...
New Form API plugin for PocketMine-MP +4.0.0

There are many Form API plugins available for PocketMine-MP, however

Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items.
Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items.

Filament Quick Create Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items from any page. Installation Instal

Renamify is a package for Laravel used to rename a file before uploaded to prevent replacing exists file which has the same name to this new uploaded file.
Renamify is a package for Laravel used to rename a file before uploaded to prevent replacing exists file which has the same name to this new uploaded file.

Renamify Laravel package for renaming file before uploaded on server. Renamify is a package for Laravel used to rename a file before uploaded to preve

Online Food Delivery Website created using HTML, CSS, PHP and MySQL which delivers food at your doorstep on Cash-On-Delivery.

Food-Delivery-Website Online Food Delivery Website created using HTML, CSS, PHP and MySQL which delivers food at your doorstep on Cash-On-Delivery. Th

Buy Domino's pizza from MCPE!
Buy Domino's pizza from MCPE!

pizzaplug Have you ever been on your PocketMine-MP (4.0.0+) server, and thought: It'd be real nice if I could order Domino's pizza through MCPE! Well,

🚀 An open source multiplayer space strategy game.
🚀 An open source multiplayer space strategy game.

Badges Introduction The game story takes place in a virtual galaxy where randomly generated planets produce various raw materials which can be used by

A simple Reddit-like forum made where people can talk about anything that has to do with outer space.

SpaceTalk SpaceTalk is a forum where people can talk about our vast universe. It contains all functionalities that a major forum does. Functionalities

MeowOfDuty - An open source multiplayer space strategy game
MeowOfDuty - An open source multiplayer space strategy game

The game story takes place in a virtual galaxy where randomly generated planets produce various raw materials which can be used by the Players to develop their infrastructure and fleet. In addition, players may trade with the Earth or engage in battles, so beyond various military arrangements, economic decisions should be taken as well.

Most Advance online restaurant menu, food delivery system, online restaurant menu, free online restaurant menu, free online restaurant menu app, online restaurant menu service provider
Most Advance online restaurant menu, food delivery system, online restaurant menu, free online restaurant menu, free online restaurant menu app, online restaurant menu service provider

Buffet Box online menu and cloud kitchen Most Advance online restaurant menu, online restaurant menu, free online restaurant menu, free online restaur

A simple command-line tool whose aim is to facilitate the continous delivery of PHP apps
A simple command-line tool whose aim is to facilitate the continous delivery of PHP apps

Deployer Simple command-line tool that aims to facilitate the continous delivery of PHP apps, particularly Laravel apps. Imagine you want to update yo

🚀 A distributed content delivery network (DCDN) integration plugin for wordpress
🚀 A distributed content delivery network (DCDN) integration plugin for wordpress

DCDN Engine - WordPress DCDN Plugin Simply integrate a Distributed Content Delivery Network (DCDN) into your WordPress site. Preview Plugin Installati

Food theme for Commerce, intended for food delivery/pickup use cases

Food theme for Commerce ################################ WORK IN PROGRESS - NOT READY FOR USE ################################ This theme for Commerce

QuCheng cloud-native application delivery platform
QuCheng cloud-native application delivery platform

开源轻量级应用交付平台 渠成云原生应用交付平台 是 北京渠成软件有限公司自主设计、研发的开源轻量级应用交付平台。它底层基于容器和Kubernetes技术,通过Helm进行应用的封装,提供了渠成云原生应用市场、服务管理、服务监控与告警、日志管理与审计、集群管理等平台功能,是一款使用简单,功能完备的云原

Food delivery app :fries: that allows users to order food from different restaurants. The project is built using a microservice architecture. :boom:

Food Delivery App Description 👋 This is a food delivery app 🍟 that allows users to order food from different restaurants. The project is built using

Image Cache is a very simple PHP class that accepts an image source and will compress and cache the file, move it to a new directory, and returns the new source for the image.

NO LONGER MAINTAINED!!! Image Cache v. 1.0.0 Image Cache is a very simple PHP class that accepts an image source and will compress and cache the file,

This package adds support for verifying new email addresses: when a user updates its email address, it won't replace the old one until the new one is verified.

Laravel Verify New Email Laravel supports verifying email addresses out of the box. This package adds support for verifying new email addresses. When

This package adds support for verifying new email addresses: when a user updates its email address, it won't replace the old one until the new one is verified.

Laravel Verify New Email Laravel supports verifying email addresses out of the box. This package adds support for verifying new email addresses. When

Yab copy to new - A Textpattern plugin. Copies the current article content to a new one.

yab_copy_to_new Displays a new button in article write tab to copy the current article to a new one. Version: 0.2 Table of contents Plugin requirement

Comments
  • Develop admin panel

    Develop admin panel

    The administrator can add new categories as well as new dishes in these categories. There is also a function to view and change the status of the order. It is possible to answer customer questions from the "Contact us" form

    opened by r0binak 1
  • Develop an authorization system with the ability to register

    Develop an authorization system with the ability to register

    A new client should be able to register on the site and log in to it after. Use a simple check whether such data is busy or not. Collect username, name, surname, email, phone number, password. Add password verification.

    enhancement 
    opened by r0binak 0
Releases(v0.1.0)
:passport_control: Helper for Google's new noCAPTCHA (reCAPTCHA v2 & v3)

noCAPTCHA (new reCAPTCHA) By ARCANEDEV© What is reCAPTCHA? reCAPTCHA is a free service that protects your site from spam and abuse. It uses advanced r

ARCANEDEV 341 Nov 19, 2022
A Laravel package helps you add a complete real-time messaging system to your new / existing application with only one command.

A Laravel package helps you add a complete real-time messaging system to your new / existing application with only one command.

Munaf Aqeel Mahdi 1.7k Jan 5, 2023
Save Model is a Laravel package that allows you to save data in the database in a new way.

Save Model is a Laravel package that allows you to save data in the database in a new way. No need to worry about $guarded and $fillable properties in the model anymore. Just relax an use Save Model package.

Laratips 27 Mar 2, 2022
Laravel Authentication Log is a package Log user authentication details and send new device notifications.

Laravel Authentication Log is a package which tracks your user's authentication information such as login/logout time, IP, Browser, Location, etc. as well as sends out notifications via mail, slack, or sms for new devices and failed logins.

Anthony Rappa 540 Jan 5, 2023
Laravel messenger. A full messenger suite for your new / existing laravel app

Laravel messenger. A full messenger suite for your new / existing laravel app! Private and group threads between multiple models, with real-time messaging, reactions, attachments, calling, chat bots, and more!

Richard  Tippin 290 Dec 30, 2022
A new way of Running Tinker. Simplify the Web Artisan's workflow.

Tinkerun A new way of Running Tinker. Simplify the Web Artisan's workflow. inspired by Tinkerwell Download links Github Releases ?? If you are using V

Tinkerun 327 Dec 29, 2022
This package provides new helper functions that take care of handling all the translation hassle and do it for you.

Laravel Translate Message ?? This package provides new helper functions that take care of handling all the translation hassle and do it for you. Insta

Basel Rabia 17 Feb 8, 2022
LaravelFly is a safe solution to speeds up new or old Laravel 5.5+ projects, with preloading and coroutine, while without data pollution or memory leak

Would you like php 7.4 Preloading? Would you like php coroutine? Today you can use them with Laravel because of Swoole. With LaravalFly, Laravel will

null 456 Dec 21, 2022
Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create

Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create. The directives you want Forman to perform are outlined in a JSON based template file.

Indatus 145 Apr 13, 2022
Make Laravel Pivot Tables using the new Laravel 9 closure migration format

This will allow you to create pivot table migration files using the new Laravel 9 closure migration format by simply passing two models.

Jose Jimenez 16 Aug 23, 2022