This project was completed as part of the Udacity Fullstack Nanodegree.
The assignment was to build an 'item catalog' web application that allows users to register & login via Open Authorization (OAuth). Registered users can make changes to a database. Google and Flask-SeaSurf were used in this setup.
I built Internet Computer Game Database (ICGDB).
UPDATE: This project is NOT meant to be run by anyone.
- I've removed the google project.
- The configuration files for vagrant aren't included.
- Udacity-prepared Vagrant directory (NOT INCLUDED in repo)
- Python 3
- flask-seasurf module
- oauth2client
- Install VirtualBox download page link
- Install Vagrant download page link
- Setup Google OAuth Client
- static
- pics
- style_base.css
- templates
- multiple html files (the pieces of the web page)
- README.md
- db_populate.py
- flask_server.py
- icgdb_database_setup.py
- Install Flask-SeaSurf via PIP
- `$ pip install flask-seasurf
- Access the Google Developers Console and create a project according to Udacity's guidelines
- Download the JSON file from the Developers Console and move this file into Catalog directory.
- Change its name to 'client_secrets.json'
- Go to templates/login_html and change the value of the 'data-clientid' attribute to the client-id found in the client_secrets.json file
- Go to db_populate.py, read lines ~28-34 regarding the use of a 'superuser'
- In your terminal, go to the Udacity-prepared Vagrant directory
- Launch VM by VirtualBox configured with Vagrant
$vagrant up
- Log into the VM
$vagrant ssh
- cd to catalog directory
- Create the database
$python icgdb_database_setup.py
- Populate the database
$python db_populate.py
- Serve the application
$python flask_server.py
- Open your browser and access the page via localhost:5000/
- authenticated users (users logged-in to Google) can make changes to the database
- API Endpoints JSON, XML
- to access the endpoints, add "JSON" or "XML" to the end of a URL
- endpoints exists for a game, games, genres, and publishers
- CRUD: READ (image urls in DB)
- CRUD: CREATE, UPDATE (upload and update images)
- CRUD: DELETE (require token submission for POST requests... )