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.
Architecture and Features
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.
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 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.
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.
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.