Skip to content
A simple flask framework web application that provides a list of items within a variety of categories and integrate third party user registration and authentication. Authenticated users have the ability to post, edit, and delete their own items.
HTML Python CSS JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Restaurant Catalog

This project is about restaurant directory, where restaurant owner can create their restaurant account and menu. The restaurant owner can add, edit and delete their restaurant and menu. Site visitors can access each restaurant and their menu. They do not have access to modify or delete any contents.

This project is a RESTful web application utilizing the Flask framework which accesses a SQL database that populates categories and their items. OAuth2 provides authentication for further CRUD functionality on the application. Currently OAuth2 is implemented for Google Accounts.

Why This Project?

Modern web applications perform a variety of functions and provide amazing features and utilities to their users; but deep down, it’s really all just creating, reading, updating and deleting data. In this project, you’ll combine your knowledge of building dynamic websites with persistent data storage to create a web application that provides a compelling service to your users.

What Will I Learn?

  1. Develop a RESTful web application using the Python framework Flask.
  2. Implementing third-party OAuth authentication.
  3. Implementing CRUD (create, read, update and delete) operations.


In order to run this project you'll need to install followings.

  1. Python ~2.7
  2. Vagrant
  3. VirtualBox

Installing and Setup Environment

  1. Install Vagrant and VirtualBox
  2. Download or Clone fullstack-nanodegree-vm repository.
  3. Find the catalog folder and replace it with the content of this current repository, by either downloading or cloning it from Here.

Running Project

  1. Launch the Vagrant VM using command:

Go to project folder by:

⋅⋅* $ cd project folder

Run the server up by:

⋅⋅* $ vagrant up

Get into server by:

⋅⋅* $ vagrant ssh ⋅⋅* $ cd /vagrant

run with python by:

⋅⋅* $ python

Access and test your application by visiting http://localhost:5000.

JSON Endpoints

The project implements a JSON endpoint that serves the same information as displayed in the HTML endpoints for an arbitrary item in the restaurnt.

Credit and copyright:

⋅⋅* Udacity for the base project code ⋅⋅* Bootstrap for templating.

You can’t perform that action at this time.