The Backend: Databases & Applications Project
Develop a responsive, RESTful application—using the Python framework Flask—that provides a list of events within a variety of categories that are stored in a database for persistence. Implement a third-party OAuth authentication service to provide user registration. Registered users have the ability to post, edit, and delete their own events and activities—as well as mark events that they are attending or considering. Events that a user is hosting, attending, or considering can also be listed by selecting the appropriate button from the user navigation menu.
Achieved performance score of 100 using Lighthouse in Chrome DevTools:
- Access the web application using a wildcard DNS provided by xip.io.
http://itemcatalog.com.35.168.251.43.xip.io/
Events You Are Attending And Considering Will Be Marked By Either A Check Mark Or A Question Mark, Respectively:
- A Web Browser such as Chrome is installed.
- Git is installed. (Optional, if you wish to clone the project repository.)
- VirtualBox is installed.
- Vagrant is installed.
- This web application has been modified to run on an Apache HTTP Server as a WSGI Application.
- Therefore, the following steps in the 'Usage' section should no longer be followed. Updates to the code—such as file path changes—will cause the application to not run properly. Instead, please follow the steps listed in the Web Application Server repository to run this application.
- Run the following commands to clone the complete web site.
$ git clone https://github.com/davidsimowitz/fullstack-nanodegree-project-4.git- Above command is optional.
- Alternatively you may download the files into the directory.
$ cd fullstack-nanodegree-project-4- Verify the following files/folders are present before continuing:
(client secret json files will be sent separately for security purposes)
- app.py
- client_secret.json
- fb_client_secret.json
- models.py
- populate_events_db.py
- README.md
- static
- templates
- Vagrantfile
-
Setup the environment:
- Run the following command inside the directory containing the Vagrantfile to bring up the Vagrant environment.
$ vagrant up- SSH into the machine.
$ vagrant ssh-
Startup the backend for the site:
- Run the app: (after ssh'ing into your vagrant machine)
$ cd /vagrant
$ python3 app.py-
Connect to the frontend:
- Connect to the frontend of the site using your web browser.
-
Accessing API endpoints:
- For all events and activities:
- For all events associated with an individual activity:
- http://localhost:5000/activities/int:activity_id/events/JSON/
- For one specific event:
- http://localhost:5000/activities/int:activity_id/events/int:event_id/JSON/





























