Project 3: Pizza



In this project, you’ll build an web application for handling a pizza restaurant’s online orders. Users will be able to browse the restaurant’s menu, add items to their cart, and submit their orders. Meanwhile, the restaurant owners will be able to add and update menu items, and view orders that have been placed.


We recommend that you try to meet the following milestones in order:

Getting Started

Python and Django

As with Projects 1 and 2, make sure that you have a copy of Python 3.6 or higher installed on your machine. You’ll also need to install pip. If you downloaded Python from Python’s website, you likely already have pip installed (you can check by running pip in a terminal window). If you don’t have it installed, be sure to install it before moving on!

To run this Django application:

  1. Download the project3 distribution code from and unzip it.
  2. In a terminal window, navigate into your project3 directory. Note that this is the directory for a Django project called pizza, inside of which is an app already created for you called orders.
  3. Run pip3 install -r requirements.txt in your terminal window to make sure that all of the necessary Python packages (Django, in this instance) are installed.
  4. Run python runserver to start up your Django application.
  5. If you navigate to the URL provided by Django, you should see the text "Project 3: TODO"!


Alright, it’s time to actually build your web application! Here are the requirements:

Beyond these requirements, the design, look, and feel of the website are up to you! You’re also welcome to add additional features to your website, so long as you meet the requirements laid out in the above specification!



What is a “Special” pizza?

It’s up to you to decide what a “special” pizza means, and to implement it accordingly. It could be one particular set of toppings, allowing up to 5 different types of toppings, or something else entirely!