Built at AOSIS Tech · 2025 - 2026
Nutrition Tracking Application
A MERN stack web application for logging meals and tracking nutrition, built as a junior full-stack developer.
Overview
A full-stack nutrition and fitness tracking application built during my time as a junior full-stack developer at AOSIS Tech, covering the whole path from the database through the API to the interface.
The idea is that eating and moving are two halves of the same picture, so the app tracks both against one dashboard. A user logs the meals they eat and the workouts and cardio they do, and the calorie totals on the dashboard update from both sides as they go.
Features
Sign up and account creation
Users register with their own details, which become the basis for everything the app shows them afterwards. Nothing in the app is generic - the plan and the targets follow from what was entered at sign up.

Personalized dashboard
The dashboard is built from the user's own information and acts as the single view of their day: calories consumed and calories burned, both updating as meals and workouts are logged. It is the screen everything else feeds back into.

Meals across the day
Meals are organised into breakfast, lunch, dinner and snacks, so a full day is covered rather than a single meal at a time.

Three options per meal
Each meal offers three alternatives rather than one fixed choice, so a user can follow the plan without eating the same thing every day - the difference between a plan someone keeps and one they abandon.

Meal detail and logging
Opening a meal shows its full breakdown - protein, carbs, fat and calories - alongside the ingredient list and recipe steps. Marking it as eaten adds those calories to the dashboard immediately, so the daily total reflects what was actually consumed rather than what was planned.

Workout routines
Workouts are grouped into full body, upper body and lower body routines, so a user can target what they want on a given day.

Exercise demonstrations and completion
Each routine lists its exercises with an animated GIF showing the movement, so the form is clear without a separate video. Marking the workout complete adds its calories burned to the dashboard.

Cardio tracking
Running, cycling and walking are logged through a dropdown where the user enters the minutes spent on each. Calories burned are calculated from the duration and added to the daily total, so activity outside a structured workout still counts.

How it works
- A React single-page frontend communicating with an Express REST API over JSON.
- MongoDB for document storage of users, meals, workouts and logged activity.
- Calorie totals derived from logged entries rather than stored separately, so intake and expenditure stay consistent with what the user has actually marked.
- Bootstrap for the responsive grid and base component styling.
Challenges
Designing a data model for entries that change shape
Nutrition entries do not all carry the same fields - some items have complete nutritional data, others only partial. Modelling that in a document database meant deciding what to require, what to leave optional, and where to validate. Putting validation in the API rather than relying on the schema alone kept the database flexible while still rejecting incomplete data before it was stored.