Inspiration

The inspiration behind NutriWise stemmed from our concern for individuals struggling with eating disorders and the widespread lack of awareness about nutritional health. We recognize that creating a balanced diet and a healthy lifestyle is often difficult for many. NutriWise was born from the desire to offer an informative tool that demystifies dietary health, providing personalized and easy-to-understand guidance.

What it does

NutriWise is a smart dietary assistant that evaluates daily food intake, alongside age, height, weight, allergies, health goals, and more. It processes this information to provide personalized dietary recommendations, identifying any nutritional deficiencies or excesses based on caloric needs and health objectives. Whether it's suggesting the addition of certain vitamins, modifying portion sizes, or adjusting overall meal composition, NutriWise offers clear, tailored advice to help users achieve a balanced and healthier diet.

How we built it

NutriWise was crafted with accessibility in mind. For the frontend, we chose to use React due to its flexibility and efficiency in creating interactive user interfaces. Our backend is powered by Flask, a Python framework, and MongoDB, a free database program. To bridge the gap between user inputs and actionable dietary advice, we used TypeScript and the OpenAI API. This script mimics TypeChat, which allows ChatGPT to output responses in a structured JSON format. These JSON responses are subsequently converted into actual JSON files, which are parsed by the React frontend and fed to the user. This process ensures that the dietary suggestions generated by our AI are accurate, concise, and user-friendly, providing a seamless experience from input to advice.

Challenges we ran into

During the development of NutriWise, we encountered several significant challenges. Initially, we aimed to utilize the TypeChat API for directly generating JSON outputs. However, this approach proved unfeasible due to integration issues. Since we knew how TypeChat functions, we successfully created an emulation using the OpenAI API within TypeScript. Another problem arose with our initial strategy to save user login information using cookies. We could not use cross-origin requests with cookies, making their use impractical for just a demo that runs on the local host. These challenges not only pushed us to think creatively but also significantly contributed to our growth and the eventual completion of NutriWise.

Accomplishments that we're proud of

We're very proud of how NutriWise turned out, especially with its clean and straightforward UI, making everything user-friendly. We're also happy with how we made the UX super accessible for everyone, which was a major priority during creation. Getting the AI to output responses in JSON format and to offer accurate and personalized diet advice was also a significant milestone in our project.

What we learned

Working on the NutriWise project greatly sharpened our OpenAI, React, and TypeScript skills. Diving into the OpenAI API really opened our eyes to how AI communication works. The challenge of getting our React frontend to play nice with a MongoDB backend was tough but taught us a lot about full-stack development. All these things that we have learned aren't just for NutriWise – they are going to give us an edge in whatever we tackle next.

What's next for NutriWise

Although we are happy with our project, it is sadly not currently compatible with mobile devices. Our next step will be to create a NutriWise app, making it accessible to mobile users everywhere. We envision a future where accessing proper nutritional information is not a daunting task. Thank you.

Share this project:

Updates