Welcome to Flying Fox, a clone of Squirrel
View the live site here: Flying Fox
Flying Fox jumps into human flight, providing a place to look at and purchase wingsuits, tracking suits, and parachutes for skydiving and BASE jumping. This project is based off of the Squirrel website where they sell similar items and other equipment.
- Hosted on Render with a Postgres database
- Local Storage shopping cart
- Purchases/ Orders
- Reviews with AWS implementation
- Categories
- News
- Clone this repository.
git clone https://github.com/Sparky338/FlyingFox-Capstone.git- Install dependencies
pipenv install -r requirements.txt-
Create a .env file based on the example with proper settings for your development environment
-
Make sure the SQLite3 database connection URL is in the .env file
-
Get into your pipenv, migrate your database, seed your database, and run your Flask app
pipenv shell
flask db upgrade
flask seed all
flask run
-
To run the React App in development, in a new terminal, get into react-app, install the npm packages, and start it
cd react-appnpm install
npm start
If you encounter
ImportError: cannot import name 'safe_str_cmp' from 'werkzeug.security' (.../FlyingFox-Capstone/.venv/lib/python3.9/site-packages/werkzeug/security.py)some code must be added to import 'safe_str_cmp' using hmac due to the deprecation of
'safe_str_cmp'. Please find a working snippet here that can be added to the end of
security.py
hmac 'safe_str_cmp' code
def safe_str_cmp(a: str, b: str) -> bool:
"""This function compares strings in somewhat constant time. This
requires that the length of at least one string is known in advance.
Returns `True` if the two strings are equal, or `False` if they are not.
"""
if isinstance(a, str):
a = a.encode("utf-8") # type: ignore
if isinstance(b, str):
b = b.encode("utf-8") # type: ignore
return hmac.compare_digest(a, b)
```
</details>





