<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rudra Mahajan</title>
    <description>The latest articles on DEV Community by Rudra Mahajan (@rudra_mahajan_).</description>
    <link>https://dev.to/rudra_mahajan_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4156314%2F399644e2-9f8b-4556-b276-4fa7a634e9ab.png</url>
      <title>DEV Community: Rudra Mahajan</title>
      <link>https://dev.to/rudra_mahajan_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rudra_mahajan_"/>
    <language>en</language>
    <item>
      <title>NutriTracker - Build an app for my gym rat friend to track on his nutritions</title>
      <dc:creator>Rudra Mahajan</dc:creator>
      <pubDate>Mon, 05 Oct 2026 17:39:40 +0000</pubDate>
      <link>https://dev.to/rudra_mahajan_/nutritracker-build-an-app-for-my-gym-rat-friend-to-track-on-his-nutritions-7k</link>
      <guid>https://dev.to/rudra_mahajan_/nutritracker-build-an-app-for-my-gym-rat-friend-to-track-on-his-nutritions-7k</guid>
      <description>&lt;p&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I  wanted to build a nutrition tracker that didn't make me do the most annoying part of nutrition tracking: manually searching for every food, figuring out the serving size, and entering everything one value at a time.&lt;/p&gt;

&lt;p&gt;So I built NutriTrack.&lt;/p&gt;

&lt;p&gt;The idea is simple: I should be able to type something like:&lt;/p&gt;

&lt;p&gt;"2 boiled eggs, a glass of milk and 250g chicken"&lt;/p&gt;

&lt;p&gt;and have the app turn that into useful nutrition data.&lt;/p&gt;

&lt;p&gt;It started as a small React prototype. Then I kept adding things to it.&lt;/p&gt;

&lt;p&gt;Authentication. Firebase. Firestore. Gemini. Food logs. Goals. Streaks. Date handling.&lt;/p&gt;

&lt;p&gt;Eventually, the frontend was doing way too much. Every new feature seemed to create another problem somewhere else.&lt;/p&gt;

&lt;p&gt;So instead of continuing to patch it, I rebuilt it properly as a full-stack MERN application.&lt;/p&gt;

&lt;p&gt;Now it has:&lt;/p&gt;

&lt;p&gt;Natural-language food logging using AI&lt;/p&gt;

&lt;p&gt;Daily calorie and macro tracking for calories, protein, carbs and fats&lt;/p&gt;

&lt;p&gt;Date-based food history&lt;/p&gt;

&lt;p&gt;Custom nutrition goals&lt;/p&gt;

&lt;p&gt;Daily logging streaks&lt;/p&gt;

&lt;p&gt;JWT authentication and protected routes&lt;/p&gt;

&lt;p&gt;MongoDB persistence for users, food logs and goals&lt;/p&gt;

&lt;p&gt;A separate Express API between the frontend, database and AI layer&lt;/p&gt;

&lt;p&gt;Validation and error handling for things that inevitably go wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;NutriTrack: &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fodbld6rerymusfp2eiut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fodbld6rerymusfp2eiut.png" alt="DashBoard" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core flow is:&lt;/p&gt;

&lt;p&gt;Register/Login → Dashboard → Describe what you ate → AI analyzes it → Food gets logged → Daily totals update&lt;/p&gt;

&lt;p&gt;You can also change dates, edit nutrition targets, delete food entries, and track your logging streak. &lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7h02gsn5e7lffdxpxyjj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7h02gsn5e7lffdxpxyjj.png" alt="Github repo" width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Rudraa-27/NutriTracker" rel="noopener noreferrer"&gt;Github&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The frontend is built with React, Vite and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;The backend uses Node.js and Express.js to expose REST APIs for authentication, food logs and nutrition goals.&lt;/p&gt;

&lt;p&gt;MongoDB + Mongoose handle persistent data storage, while JWT and bcrypt handle authentication and password security.&lt;/p&gt;

&lt;p&gt;For the AI layer, I used the Gemini API to analyze natural-language food descriptions and return structured nutrition data such as calories, protein, carbohydrates and fats.&lt;/p&gt;

&lt;p&gt;One of the biggest architectural changes was moving the AI call from the frontend to the backend:&lt;/p&gt;

&lt;p&gt;React → Express → Gemini → MongoDB → React&lt;/p&gt;

&lt;p&gt;That keeps the API key away from the client and makes the AI layer something I can improve or replace without rewriting the whole application. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;This project probably wouldn't exist in its current form without the huge ecosystem of tools and ideas I could build on.&lt;/p&gt;

&lt;p&gt;React, Vite, Tailwind CSS, Express, MongoDB, Mongoose, JWT libraries and the rest of the JavaScript ecosystem let me focus on building the product instead of reinventing basic infrastructure.&lt;/p&gt;

&lt;p&gt;For the AI part, I used Gemini through its API rather than running an open-weight model locally. That means the AI itself isn't open-source, and I don't want to pretend otherwise.&lt;/p&gt;

&lt;p&gt;What the open ecosystem did give me was the ability to build the application around modular pieces. The AI is just one service in the architecture. I can change the model, change the nutrition-analysis logic, or eventually run a different model locally without rebuilding the entire application.&lt;/p&gt;

&lt;p&gt;For me, that's what open innovation made possible: taking existing tools, combining them in a way that solves a real problem, breaking things when I inevitably got ambitious, and then rebuilding them better. &lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/challenges/hf26#best-use-of-mongodb-atlas"&gt;Best use of MongoDB Atlas&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/challenges/hf26#best-use-of-github-copilot"&gt;Best use of Github Copilot&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
