Skip to content

aviiiij/fresh-bites

 
 

Repository files navigation

Table of contents

Introduction

We are delighted to welcome you to our app Fresh Bites! Take your health and wellness into your own hands today!

What is Fresh Bites

Fresh Bites is an app that we created to help people live their healthiest lives. Fresh Bites makes it easier to plan their diets and cook their meals by allowing people to buy individual foods and the ingredients of said foods. This allows people greater control over what people put in their bodies.

Why did we create Fresh Bites

We created Fresh Bites in order to allow people greater control over what people put into their bodies. Alot of times, we just don't know what we are putting into our bodies, especially when so many common foods list ingredients that are not even food items. So we wanted to make it easier for people to plan healthier meals and diets for themselves and their loved ones. Thus, Fresh Bites was born.

Getting Started

Below are some instructions on how to get started on Fresh Bites and begin living a healthier lifestyle.

Login/Signup

Befor you can shop or place any orders on Fresh Bites, you have to create and/or login to your Fresh Bites account. If you are not logged in, you will be unable to place any orders.

You can create an account by clicking on the Login/Signup tab of our fresh-bites.com Home page:

Login/Signup Page

Then, you can either login to your account:

Login Form

Or you can click on the signup tab at the bottom of the login window to create your account:

Signup Form

Additional Information

Something else you might want to know is that you have to create an account to actually browse the items. This is to give early adopters and testers a head start in trying the fresh-bites app.

Features

Below is an explanation of some of the features we have available so far.

Shopping Page

Our Shopping Page displays all of the products available for you to purchase. You can add foods and ingredients to your cart from here:

Shopping Page

Once you are done shopping, you can click on the little cart icon on the top right to access your shopping cart:

Shopping Cart Button

Shopping Cart

Once you have clicked the shopping cart page, you can review the items on your page. This will allow you to place your order as well as change the quantity of each item in your cart:

Shopping Cart Page

Note: You must have items in your cart in order to access this page. If you do not have a cart in session, you will see this instead:

Confirmation Page

Confirmation Page

Once you have placed your order, you will see this lovely confirmation page. This confirms that we have received your order and that it will be on its way to your place of residence ASAP.

Spoonacular API

We make use of the Spoonacular API, which gives us access to information on a ton of recipes for healthy and delicious foods, to power our app.

Deployed on AWS

We have deployed our app via the cloud, more specifically using Amazon Web Services (AWS). Below is what that looks like:

AWS Instance Overview AWS Instance Details

We set this up by attaching our AWS CentOS virtual machine to GitHub via GitHub Secrets. We entered the information necessary to make the connection between our AWS instance and our app, thus deploying our site to AWS.

Monitoring

We have implemented monitoring as well to make sure we can keep an eye on how our site is performing at all times. First, we added cadvisor in order to constantly have that information coming in at all times:

cadvisor

Then, we added Grafana, in conjunction with Prometheus, in order to be able to save records of all our monitoring checks. This way, we can go back into previous records for any pertinent information, in case we have a problem come up that was dealt with previously:

Graphana and Prometheus 1

Graphana and Prometheus 2

Planned Future Features

Below are some features we plan on implementing in the future.

Water Tracker with Alert

In order to be our healthiest selves, we humans require at least 80 fl. oz of water every day. However, because of our busy lives, we often lose track of this and often fall short of our water requirement because of it. Thus, we intend to implement a water tracker so that you can count how much water you drink in a day. Additionally, we plan to add an alert system to remind you at specific times throughout the day to drink a cup of water, making it easier to track and successfully attain the necessary water intake for you.

A Bit about the Code

Below is some information about what we used to create this app, which will aid anyone looking to contribute to this project or otherwise interested in what we did here.

Technologies Used

On the Backend, we used Python with Flask to implement the logic of how each of our features work. We store the data using MySQL, which is a type of SQL Database.

On the Frontend, we have implemented HTML, CSS, JavaScript, and Bootstrap.

Additionally, we have implemented:

  • CI/CD using GitHub Actions
  • Nginx
  • SSL Certification for additional security (HTTPS)
  • Monitoring using Graphana
  • AUTH0 for Login/Signup
  • Docker to containerize different parts of the app (app, Nginx/SSL Certification, MySQL Database)

Things to Note for Potential Contributors

In order to be able to test your additions locally, you have to install Flask and other necessary python packages. Those packages are specified in requirements.txt, the basic steps for Flask are shown below (for installing packages, recycle Step 3):

  • Step 1: python3 -m venv venv
  • Step 2: . venv/bin/activate
  • Step 3: pip3 install Flask
  • Step 4: export FLASK_ENV=development
  • Step 5: flask run

Documentation

For more information on the specific functions on this app, click here!

License

License

Links

Contributors

Below is a bit about the Initial Contributors to the Fresh Bites app.

Avi

Avi's GitHub

Gabriel

Gabriel's GitHub

Monika

Monika's GitHub

Brandon

Brandon's GitHub

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 62.6%
  • Python 23.0%
  • CSS 12.4%
  • Other 2.0%