/flask-fyurr

Udacity Fullstack nanodegree - project 1

Primary LanguagePython


Logo

Fyyur

Project 1 for Fullstack Nanodegree @ Udacity

Table of Contents

About The Project

Main Screenshow

Fyyur is a musical venue and artist booking site that facilitates the discovery and bookings of shows between local performing artists and venues. This site lets you list new artists and venues, discover them, and list shows with artists as a venue owner.

Built With

  • virtualenv as a tool to create isolated Python environments
  • SQLAlchemy ORM to be our ORM library of choice
  • PostgreSQL as our database of choice
  • Python3 and Flask as our server language and server framework
  • Flask-Migrate for creating and running schema migrations

Demo

Below is a demo for every implemented feature

Artists

  • Artist List and Detail View

    Click to expand!

    Artist List GIF

  • Artist Search View

    Click to expand!

    Artist Search GIF

  • Artist Edit View

    Click to expand!

    Artist Edit GIF

  • Artist Create View

    Click to expand!

    Artist Create GIF

Venues

  • Venue List and Detail View

    Click to expand!

    Venue List GIF

  • Venue Search View

    Click to expand!

    Venue Search GIF

  • Venue Edit View

    Click to expand!

    Venue Edit GIF

  • Venue Create View

    Click to expand!

    Artist Create GIF

  • Venue Delete View

    Click to expand!

    Artist Delete GIF

Shows

  • Show List View

    Click to expand!

    Show List GIF

  • Show Create View

    Click to expand!

    Show Create GIF

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • Docker
  • docker-compose

Follow this guide to learn how to install them

Installation

with docker

  • just use the following command to get the application to start
 make

without docker

cd path/to/the/project_dir

pip install -r requirements-dev.txt

python manage.py load_db location
python manage.py load_db genres

python manage.py run

Test

with docker

  • just use the following command to run the unittests
 make test

without docker

cd path/to/the/project_dir

pip install -r requirements-dev.txt

nosetests -sv

you should see the following

❯ make test
docker-compose run --service-ports --rm python nosetests -sv
Starting fyyur_database_1 ... done
Test Artist Create: test that an artist can be created /artists/create ... ok
Test Artist Detail: test that all artist details are listed in /artists/<artist_id> ... ok
Test Artist Edit: test that an artist can be edited /artist/<artist_id>/edit ... ok
Test Artist List: test that all artists are listed in /artists/ ... ok
Test Artist Search: test that all matching artists are listed in /artist/search ... ok
Test Show Create: test that a show can be created /shows/create ... ok
Test Show List: test that all shows are listed in /shows/ ... ok
Test Venue Create: test that a venue can be created /venues/create ... ok
Test Venue Detail: test that all venue details are listed in /venues/<venue_id> ... ok
Test Venue Edit: test that a venue can be edited /venues/<venue_id>/edit ... ok
Test Venue List: test that all venues are listed in /venues/ ... ok
Test Venue Search: test that all matching venues are listed in /venues/search ... ok

----------------------------------------------------------------------
Ran 12 tests in 1.008s

OK