The PrestoPantry project started as a group project initially contributed to by Adam Wojdyla, Riley Strong, Dakota Miller, and Hector Cruz.
This project was completed for the purpose of CS 4360 (Technical Software Project) as our Senior Experience course at Metropolitan State University of Denver.
- Python3/HTML/CSS
- Django
- PostgreSQL (prior to AWS RDS deployment)
- AWS
- RDS
- S3
- EC2
- IAM (Group and User Management)
- Cloudwatch
- Figma
- Trello
- dbdiagram.io
- Travis CI
- Spoonacular API
- Google OAuth Sign In
- Google Custom Search API
- GitGuardian
- Radon
- Sonar Cloud
To install required modules run these commands INSIDE of the Python virtualenv (assuming Python is installed):
python -m ensurepip --upgrade
pip install -r requirements.txt
In order to use the project as we left it in May 2022, you'll need a few environment variables:
- DJANGO_SECRET_KEY: A secret key for a particular Django installation. This is used to provide cryptographic signing, and should be set to a unique, unpredictable value.
- SPOON_API_KEY
- PRESTOPANTRY_DB_NAME: Pending your database solution, the need for these credentials may vary. Tailor your code appropriately. (used in storing user models and ingredients models)
- PRESTOPANTRY_DB_USER: Reference link from PRESTOPANTRY_DB_NAME above for more details
- PRESTOPANTRY_DB_PASSWORD: Reference link from PRESTOPANTRY_DB_NAME above for more details
- PRESTOPANTRY_DB_HOST: Reference link from PRESTOPANTRY_DB_NAME above for more details
- PRESTOPANTRY_DB_PORT: Reference link from PRESTOPANTRY_DB_NAME above for more details
- PRESTOPANTRY_GOAUTH_CLIENT_ID: You'll need an account through the Google Developers Platform to be assigned a Client_ID and Client_Secret for using this feature (allowing users to create an account at PrestoPantry & then log in using their Google Account)
- PRESTOPANTRY_GOAUTH_CLIENT_SECRET: Reference link from PRESTOPANTRY_GOAUTH_CLIENT_ID above for more details
- GITGUARDIAN_API_KEY: This solution was used to ensure as we pushed commits to the remote repository that we were not pushing secrets (such as API Keys)
- PRESTOPANTRY_GCS_DEVELOPER_KEY: Use of Google Custom Search imported images for recipe ingredients to display while searching for ingredients (can help a user validate they are adding the correct ingredient to their pantry)
- PRESTOPANTRY_GCS_CX: Reference link from PRESTOPANTRY_GCS_DEVELOPER_KEY above for more details
Features:
- Sign Up / Log In buttons easily accessible
- Carousel options to provide alternate user-driven routing
- (not shown) Link to GitHub Repo at bottom of every page
Features:
- Various enforcements in place to drive stable back-end design and secure user experience
- Supplemental option available for Google OAuth account creation
- Meaningful error messaging provided to aid users in account creation
Features:
- Various enforcements in place to drive stable back-end design and secure user experience
- Supplemental option available for Google OAuth Sign In
- Meaningful error messaging provided to aid users in sign in
Features:
- Successful Google OAuth Sign In illustrated
- Greeting message individualized for each user
- Carousel option currently showing placeholder for new feature (Community interactions page, TBD delivery date)
Features:
- Enables users to edit all account details after account creation
- Meaningful error messaging provided to aid users in sign in
Features:
- Enables users to edit account details specific to PrestoPantry application after account creation
- Other details should only be edited directly in users' Google account
- Meaningful error messaging provided to aid users in sign in
Features:
- Prior to adding any ingredients or after removing all ingredients, a user will not have any ingredients in their pantry
Features:
- Upon searching ingredients, users will be offered various products to add to their personal pantry for use in recipe searches
Features:
- Displays current ingredients present in a user's pantry. From here, users can choose to add more ingredients, remove some or all ingredients, or begin searching recipes matching their ingredients
Features:
- Once a user is satisfied with their pantry ingredients they've personalized, they can search recipes detailed with used ingredients, unused ingredients, and missing ingredients
Features: