Skip to content
Branch: master
Find file History
Pull request Compare This branch is 296 commits ahead, 42 commits behind udacity:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Item catalog

This project is part of Udacity's Full Stack Developer Nanodegree.

This project implements a web application that lets restaurant owners show their menus. It's built with:

  • Server-side: Python plus the Flask framework.
  • Database: SQLAlchemy backed by a PostgreSQL database. Also tested with SQLite during development.
  • Front-end: HTML5/CSS3, with a Bootstrap interface and some jQuery.

Project homepage

Extra details can be found at:

Live site, hosted at Heroku



How to run the project

To run the project tests, follow these steps:

  1. Install Vagrant if you don't have it already.
  2. Grab a copy of the project. You can either:
  1. Open a command-line window and go to the /fullstack-nanodegree-vm/vagrant folder of the project.
  2. Once in it, run vagrant up. That command will load the Virtual Machine, which contains the development environment.
  3. SSH into the machine with the username vagrant and password vagrant. Depending on your OS:
  • NOT Windows: just run vagrant ssh.
  • Windows: Running vagrant ssh will mourn that it's not possible and provide you an IP/port to log in. So, to log in, download PuTTY and follow the instructions found here, which basically explain how to use the Vagrant VM certificate in PuTTY.
  1. Once inside the VM, run cd /vagrant/tournament.
  2. Instal Python dependencies; sudo pip install -r requirements.txt
  3. To start the web, just run python
  4. Once it's started, it will be available from the brwoser at localhost:5000.

What's included

Within the download you'll find the following directories and files, logically grouping common assets. You'll see something like this:

├── vagrant/
│   ├── restaurants/                  THIS PROJECT
│   │   ├──                 THIS FILE
│   │   ├── static/                   JS and CSS files
│   │   │   ├── app.js                jQuery functionalities
│   │   │   └── style.css             Web style, based on Bootstrap
│   │   ├── templates/                Flask templates of the site
│   │   │   │── partials/             Common sub-templates (head html, navigation bar, flash messages)
│   │   │   └── *.html                The name of each template is self-descriptive
│   │   ├──                SQLAlchemy-based definition of the DB
│   │   ├──              Running this script fills the DB with demo data  
│   │   ├──                    Data-Access Objects; implement the operations on the DB through SQLAlchemy
│   │   ├──                 MAIN SCRIPT. Contains the web Flask routes
│   │   ├──   Flask routes implementing JSON and ATOM endpoints
│   │   ├──           Flask routes implementing OAuth
│   │   ├──client_secrets_fb.json     Facebook OAuth secrets file
│   │   ├──client_secrets_gc.json     Google OAuth secrets file
│   │   ├──Procfile                   Script for foreman
│   │   └──requirements.txt           Configuration for Heroku
│   ├── tournament/                   Project 2 of the Full-stack Nanodegree  
│   ├── Vagrantfile                   Virtual machine configuration  
│   └──                  Script that install everything needed in the VM
└──                         Repository readme file
You can’t perform that action at this time.