Skip to content

Python stack project utilizing Flask, Bcrypt, Jinja2, HTML, AJAX, JSON, Javascript, Bootstrap, & MySQL

Notifications You must be signed in to change notification settings

coren-frankel/meal_picker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

piqr (pick·​er | \ ˈpi-kər )

piqr is a random recipe retrieval CRUD app and the first full-stack portfolio project for Coren Frankel as a fledgling developer. It integrates the spoonacular API random recipe endpoint to provide an adventurous recipe discovery, persistence, and deletion experience for the user. Live demo here.

Table of Contents

General Information

Have you ever been willing to cook, unwilling to cook the familiar, but had the general creative desire to try something new or different?piqr was contrived as a response to the classic dilemna that can result amongst individuals when asking, "What should we make to eat?" The app harnesses the spoonacular Nutrition, Recipe, & Food API to allow easy-click random recipes from over 300K to be glanced and saved to user-registered accounts. The Python-Flask MVC architecture utilizes bcrypt hashing for password security and authentication, and flash messages for login and registration validations. The MySQL database is host to minimal user info and collects reference points to spoonacular's recipes to avoid the scraping of data from the API per developer agreement. Users are able to access one-click request/responses for 1, 5, or 10 recipes at a time.

Technologies Used

  • Python 3.10
  • Flask 2.1.3
  • MySQL 8.0.28
  • PyMySQL 1.0.2
  • bcrypt 4.0.1
  • Jinja2 3.1.2
  • Bootstrap 5.0
  • Google Fonts API
  • spoonacular API via RapidAPI

Features

  • Login/Registration with bcrypt password-hashing & email regular expression backend validations with flash messages
  • User account allows fetching of 1, 5, or 10 random recipes at a time
  • Users can "piq" their favorite recipes to be saved, view more detail about recipes, and purge them from their account
  • Guests can get a dose of the user experience with access to 1 random recipe at a time, and are able to attempt to save a recipe, which
  • More to come! (Ingredient/Cuisine/Diet search filters!!!)

Screenshots

Project Status

Project is: 🏗️ in progress

Active Contributors:

Room for Improvement

Room for improvement:

  • When initially learning, exploring & building with the spoonacular api, fetch, & bootstrap styles and components, the UX was largely bolstered by DOM manipulation through javascript. This amalgymated several areas needing improvment including: exposed API keys in js files, clunky template literals & indistinct bootstrap accordion elements that open/close in unison rather than being autonomously interactive.
  • The original design(unfinished & excluded in minimum viable product) provides a form that allows users to call for random recipes with filters to include or exclude cuisine, diets, and/or ingredients to provide a more robust recipe inspiration experience. This feature will come to exist!**

To do:

  • Migrate API request to the backend from JS to Python to promote clean API consumption
  • Refactor styles for mobile-friendly responsive design
  • Integrate minimal animations for AJAX waiting/loading
  • Provide the ability to create, edit your own recipes
  • Build relationships and logic to "like" & comment on recipes
  • Introduce minimal "social" element to share/show recently "piq'd" (favorited) recipes

Acknowledgements

  • This project is dedicated to my wife Rosey, who tolerates me and endures my flagrant suggestion of "food" whenever asked what to eat or cook.

Contact

About

Python stack project utilizing Flask, Bcrypt, Jinja2, HTML, AJAX, JSON, Javascript, Bootstrap, & MySQL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published