Skip to content

eduzenite/The-Pizza

Repository files navigation

Task description

Let’s imagine you want to start a new pizza delivery business. Please create a small web application for online pizza ordering. The idea is to make a non-existing service where assumed clients can choose a pizza, put it into a cart and make an order.

Requirements

  • The menu page should contain at least 8 pizzas
  • Your clients should be able to choose pizzas directly from the menu
  • You can decide what else you want in the menu
  • Adding a description for each pizza would be a nice decision
  • Don’t proceed to the payment page. The last action from a client will be filling in the order form (address, name, surname, etc.) to get a confirmation that the order has been received
  • A client should be able to put several pizzas into cart, and the quantity must be defined both while outside the cart and in the cart
  • Total price of each order must be calculated and shown in euros and in dollars
  • Don’t forget to add delivery costs to the final bill

Steps

The steps for the development of this project will be detailed below and were written as the project progressed.

1° Step

The first step will be the creation of the system routes. Before starting to define the routes, I usually draw the page map on paper. Initially all routes are accessible and I am gradually protecting them with a login system.

2° Step

Part 1

After creating the routes, I started creating the views, for that I used Bootstrap 4. I like themes that use this CSS framework, although there are others. At Laravel I used Blade to create templates and to start creating the screens, I created a "layout" folder that will contain the base of the layout.
  • Home layout created
  • The menu already has a link for each of the areas
  • The skeleton of the site is also working
  • Visual frameworks installed: Bootstrap 4 and Font Awesome 6

Part 2

Other system screens were created and I added a lightbox to display the images. There are still a few more screens left to be done before I start modelling.

Part 3

I finished all screens and now I will start to create the models.

3° Step

I created all the Models and the table links. With Laravel we have the ease of creating Models and Migrations together, which facilitates the abstraction of the solution.

4° Step

I created some data in the system through Seeds, in addition to inserting 4 images for each product. The products were divided into two categories: Pizzas and Drinks.

5° Step

In this step I created the product controllers and integrated them with their respective views. I reduced the code, implemented the area filters using the URL parameters, which allowed me to use the same controller and the same view for any product category.

6° Step

In this step, the entire login and profile management systems were implemented. Now the user can register and update his profile information on the respective pages. As Laravel uses Boostrap, little changes were made to the layout, however several custom fields were added to the user profile.

7° Step

I have finished implementing the ordering system. Orders are placed in the system and saved in the database.

8° Step

I implemented the script that changes the store's currency.

Considerations

I could have used a ready-made online store, like Prestashop or WooCommerce, to develop the system, but I preferred to develop it from scratch in Laravel to consolidate my knowledge.

The layout used is Boostrap 4, but I prefer to use more complete HTML templates like the one I used on the sys.forumdelivery.com.br website.

About

Pizza ordering system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published