Eat Right

Introduction

Our project seeks to assist people in staying healthy by tracking their calorie intake. It also includes an area where users can browse and post recipes. The website was established for anyone over the age of four who wishes to eat the recommended daily calorie intake. It’s also a destination for food lovers who wish to sample the recipes of other cultures.

Kaleab Tesfaye (Me), Samra Solomon, and Tony Baidoo make up the squad. Tony Baidoo’s function was primarily frontend, but he could also help with the backend if needed. The majority of Samra’s and my work was on the backend, as well as various areas of the frontend. We just had three weeks to complete the assignment. My personal attention was drawn to the project’s backend. I assisted in the creation and styling of certain portions of the frontend, as well as developing and updating databases and API/routes.

Reason to work on this project

When it comes to body weight, I’m the type of person that usually struggles to gain weight. I’ve never seen myself gaining weight or maintaining a healthy weight for my height and age. Below is always the case. I don’t think I’m a picky eater. I eat well. I’ve tried a few different ways to gain weight, such as eating a lot of food and doing less exercise. But no matter what I do, I stay slim.

I was on Reddit the other day and came across a thread discussing why people don’t gain weight as much as they would want. I don’t recall the entire post, but there was one point that caught my attention: metabolism. It’s the first time I’ve heard it. As a result, the post clarified metabolism and defined different types of metabolism. I sort of fell into one of the categories. A fast metabolic rate or high metabolism. indicates that your body consumes energy (or burns calories) more quickly than someone with a slower metabolism, and the post suggests that those with a high metabolism consume more calories or eat more food. I followed the instructions and began to eat more and keep track of my calorie intake. However, I was unable to keep track of my consumption for more than ten days. since the calorie content of most of the meals I was eating was difficult to determine, even using calorie calculator websites. This problem with the calorie counter motivated me to start working on this project.

What has been accomplished from this project?

I’ll go over the architecture, some of the webpage’s features, and the technologies used in this section.

www.kalom.tech is typed in by a user. The DNS server for the.tech Domain will examine this domain name. The DNS server will return an IP address. This IP address will be forwarded over the internet to the appropriate load balancer. This load balancer will forward incoming requests to one of the two servers I’ve been given. Because they are duplicates, each server contains the same webpage content. Following that, the request will be forwarded to one of the servers.

One of the servers can be seen here. When a request arrives at the server, NGINX checks to see if there is a path to it. It will then display the static content if it detects the correct file and directory.

When a response is received by the client’s browser, this will be shown.

A client’s information, such as age, activity level, and gender, will be used to establish their overall calorie intake. This data is parsed by javascript and passed to a route as arguments. This route will search the database for the exact calorie intake based on the information provided.

The client is shown utilizing the calorie counter in this image. On the static webpage, they included the meal and the portion size. That data will be fetched via a third-party API (calorieninja), and the meal’s calorie count will be presented.

This person looked for 4 pieces of pizza, which would total 562.6 calories.

The client will type the name of a recipe in this box. This name is used to query the database’s recipe table. The possible names in the recipe table will then be displayed.

The client selects a recipe card by clicking on it. The recipe card’s id will be passed to a route as an argument. The content of the recipe will be retrieved based on the id.

When the Azifa card is clicked, a pop-up window displays, displaying the ingredients and preparations.

On the webpage, the client fills in all of the information asked by the form. This information will be stored in the database’s recipe table.

For the front-end, we used HTML, CSS, and Javascript for the dynamic aspect. In a previous project, we utilized these technologies. We thought they were fun to use, so we decided to use them to enhance our talents. It was suggested that typescript be used instead of javascript. However, because our project is modest, we chose to stick with javascript.

For the backend, we utilized Python for programming and MySQL for database storage. We also used some of the standard Python modules and packages. For example, Flask, Sqlalchemy, and flask cors. Flask was used to build web apps. We could have used Django instead, but we chose flask because it is more user-friendly.

Finally, we chose NGINX as the web server, Gunicorn as the WSGI, and Haproxy for load balancing.

What have I learned?

It is critical to work as a team.

Get the chance to explore Javascript more.

Always be open to hearing what other people have to say.

The success of one individual on a specific task is the success of the entire project.

About me?

I am an Ethiopian ALX software engineering student. Learning, exploring, and trying new things are all things that I enjoy. This does not only apply to programming and coding, but to anything. I enjoy being exposed to new experiences and embracing them.

I’ll list my contact information below; please feel free to communicate with me, and I’d be delighted to connect with you as well.

https://github.com/tcrz/Eat_Right

https://linkedin.com/in/kaleab-tesfaye-3b0546201

http://web-02.kalom.tech/eat_right

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

MEXC Research: A Step-by-step Guide on How to Participate in Kusama’s Parachain Slot Auctions

Preparing for Launch

Digital Discovery 101: How to Technically Evaluate a Website

Is scratch easy to learn

Invite Users to Laravel Jetstream Team

New Opportunities To Edit Your Job Already In The Plan

Belajar Android Developer Fundamentals (Version 2) Cont… (7)

AWS Serverless Feedback

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Kaleab tesfaye

Kaleab tesfaye

More from Medium

Prominent Sarasota Oncologist and Founder of Dattoli Cancer Center, Michael Dattoli Discusses…

I was older then. I’m so much younger than that now

Winter Fun

I’m not sure when it started, but at some point, I realized that my mental health journey in Web3…