This project is the Capstone project for the Udacity Full-Stack Developer Nanodegree
Program.
Concepts and the skills summarized by udacity:
- Coding in Python 3
- Relational Database Architecture
- Modeling Data Objects with SQLAlchemy
- Internet Protocols and Communication
- Developing a Flask API
- Authentication and Access
- Authentication with Auth0
- Authentication in Flask
- Role-Based Access Control (RBAC)
- Testing Flask Applications
- Deploying Applications
This Project enables its users to look for the perfect friend (a cat or a dog to adopt) for the perfect home (users of the website). It eases the process of booking an interview with the shelter and searching for a pet to adopt. And it encourages its users to adopt rescued pets.
The shelter website is designed to cover one city and all process after the interview is not included in the scope of this project.
- Python environments tool: virtualenv
- ORM library: SQLAlchemy
- Database: PostgresSQL
- Server language and server framework: Python3 and Flask
- Creating and running schema migrations: Flask-Migrate
To work with the application locally first make sure you have python installed.
Then:
-
Clone the Repository
-
Set up a virtual environment using virtualenv
-
Install pip Dependencies:
pip install -r requirements.txt
- Run Database Migrations
- Run the Flask Application locally:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
-
Verify on the Browser Navigate to project homepage http://127.0.0.1:5000/ or http://localhost:5000
-
Run unittests
python unittest_app.py
You can view the documentation at API Documentation
Protected API Endpoints are decorated with Auth0 permissions. to use the project locally, you need to config Auth0 accordingly. readAuthentication with Auth0 for more details.
This project is deployed to Heroku at the following link: https://animal-rescue-and-shelter.herokuapp.com/
For now only the home page has been devoloped.