OussamaElhamdani / S7yby_Nutrition_Chatbot

A chatbot that will help people interested in body-building & fitness

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S7yby_Nutrition_Chatbot

Overview

S7yby_Nutrition is a web application dedicated to assisting bodybuilders in optimizing their nutrition plans. It provides a comprehensive solution for achieving fitness goals with a user-friendly interface, robust features, and machine learning-based techniques.

Team Members

As dedicated data engineering students, we thrive on expanding our skill sets through innovative projects that leave a meaningful impact. Meet our team members :

Table of Content

  • General Context

  • Used Technologies

  • Project Workflow

  • Project Implementation

General Context

S7yby_Nutrition is meticulously chosen to address vital needs in the fitness domain, primarily driven by the commitment to holistically optimize nutrition plans for bodybuilders. This project's significance is underscored by its data-driven approach, leveraging expertise in data science to provide well-informed decision-making through aggregated information from reputable sources. The incorporation of S7yby_Nutrition_chatbot adds an interactive and intelligent dimension, offering personalized assistance in meal planning aligned with individual nutritional requirements. Beyond technological ambitions, the project symbolizes a dedication to continuous learning and the advancement of health and fitness standards. With a deliberate focus on a user-friendly interface, S7YBYNutrition stands as a strategic choice, combining technological prowess with a profound commitment to elevate practices in the fitness community.

Used Technologies

  • Front End

    • HTML-CSS-JS

      Front End

      Frontend development encompasses the creation of the user interface and user experience on the web. HTML serves as the building blocks, structuring content, while CSS styles and formats it, defining layout and visual presentation. JavaScript adds dynamic behavior, facilitating interactive features and real-time updates. Responsive design ensures adaptability across diverse devices.

  • BackEnd

    • SpringBoot

      Spring Boot

      Spring Boot is an open-source Java framework that simplifies the development of production-ready, stand-alone Spring-based applications. It provides a convention-over-configuration approach, reducing boilerplate code and configuration, and integrates seamlessly with the Spring ecosystem. With built-in support for embedded servers, dependency management, and auto-configuration, Spring Boot enables developers to rapidly build and deploy robust, scalable, and easily maintainable applications. It promotes best practices and focuses on convention, allowing developers to concentrate on business logic rather than complex setups, making it an excellent choice for building microservices and modern web applications.

  • Machine learning model

    • TensorFlow&Keras - Model Development TensorFlow&Keras

      • TensorFlow

        TensorFlow is an open-source machine learning framework developed by the Google Brain team. It provides a comprehensive ecosystem of tools, libraries, and community resources for building and deploying machine learning models. TensorFlow supports both deep learning and traditional machine learning, offering flexibility for a wide range of applications. Its core functionality involves defining, training, and deploying machine learning models, utilizing computational graphs to represent complex computations.

      • Keras

        Keras is a high-level neural networks API written in Python that serves as an interface for building and training neural networks. Originally a separate library, Keras has been integrated as the official high-level API into TensorFlow since version 2.0. Keras abstracts and simplifies the construction of neural networks, offering a user-friendly interface without sacrificing flexibility. It allows rapid prototyping of deep learning models, emphasizing modularity, ease of use, and extensibility. Keras can run seamlessly on top of various deep learning frameworks, with TensorFlow being the primary backend.

    • FastApi&Docker - Model Deployment

      FastApi&Docker
      • FastAPI

        FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. It is inspired by APIStar, but it is not a fork. It is designed to be high-performance, asynchronous, and ready to serve production workloads. It is powered by Starlette and Pydantic. It is a class-based API framework that is built on top of Starlette, which is a lightweight ASGI framework/toolkit. It is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. It is inspired by APIStar, but it is not a fork. It is designed to be high-performance, asynchronous, and ready to serve production workloads. It is powered by Starlette and Pydantic. It is a class-based API framework that is built on top of Starlette, which is a lightweight ASGI framework/toolkit.

      • Docker

        Docker is a set of platform-as-a-service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries, and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating system kernel and are thus more lightweight than virtual machines. Containers are created from images that specify their precise contents. Images are often created by combining and modifying standard images downloaded from public repositories.

Project Workflow

Data Collection

  • Efficiently gather data from various free and reliable websites. Cause we are using a machine learning model, we need to collect a large amount of data to train our model. We used a web scraping technique to collect data from the web and also collecting some data manually. We used BeautifulSoup, requests library to scrape data from the web. And it was the hardest part of the project.

Web Application Development

Back End
  • We used Spring Boot to develop our web application, Thymeleaf to create the front end of our application, Spring Security to secure our application, MySQL to store our data, JPA to connect our application to the database, BCrypt to encrypt the password of our users, Hibernate to map our database to our application, Maven to manage our dependencies, Tomcat to run our application, Spring Boot Data to manage our data, Spring MVC to create our controllers, Spring AOP to create our aspects, Spring Boot Test to test our application, Spring Web Services to create our web services, Spring Boot Web to create our web application, Spring Web Services to create our web services, Spring Boot Security to secure our application.

Front End

  • We used HTML to create the structure of our web pages, CSS to style our web pages, JavaScript to add dynamic behavior to our web pages, Bootstrap to create our web pages, JQuery to add dynamic behavior to our web pages, AJAX to send asynchronous requests to our web services, JSON to send data between our web pages and our web services.

Machine learning model

  • We used TensorFlow, Keras and Python to build our model, Jupyter Notebook to test and create the model, NLTK because we're developing a chatbot that will interact with the text that we send to it. To save and build the model we used Pickle library. And finally to deploy the model as an API we used FastAPI and Docker.

Chatbot Logic:

  • S7yby_Nutrition_chatbot is a robust multiclass machine learning system.
  • Learns patterns from intents.json to provide users with accurate responses tailored to specific questions.
  • The chatbot extends support by recommending meals tailored to meet users' nutritional requirements: Offering information and links to resources where users can find detailed insights about the recommended meals.

Application Overview

  • Home Page

Index Page

  • Login Page

Login Page

  • Register Page

Register Page

  • Chatbot

Chatbot

  • Database with password encrypted

db

About

A chatbot that will help people interested in body-building & fitness


Languages

Language:CSS 45.2%Language:HTML 31.3%Language:Python 8.4%Language:JavaScript 8.3%Language:Java 6.4%Language:Dockerfile 0.3%