02 / 2026 / Project Based Learning
Avenution
A web-based nutrition platform that turns a health profile into personalized food recommendations grounded in Indonesian ingredients and products.
Avenution uses a person's body measurements, selected health indicators, activity, dietary restrictions, and goals to create a tailored nutrition analysis. It combines calorie estimates and diet classification with ranked suggestions from a catalog of Indonesian ingredients and packaged foods. Each result includes a match score and suggested meal time, while saved analyses give signed-in users a place to revisit past results.
- Focus
- Personalized food recommendations
- Inputs
- Body and health profile
- Food catalog
- About 3,000 Indonesian items
- Built with
- Laravel, PHP, and MySQL

01 / Product overview
Your Nutrition Avenue Starts Here.
Make nutrition suggestions feel personal and local.
Avenution is a web-based health-tech platform that turns a person's body measurements, selected health indicators, activity, dietary restrictions, and goals into ranked food suggestions. It combines an individual analysis with a catalog of Indonesian ingredients and packaged foods, then explains each suggestion with a match score and suggested meal time.
- Product
- Personalized nutrition recommendations
- Experience
- Responsive web platform
- Food catalog
- About 3,000 Indonesian food items
- Project type
- Project Based Learning
02 / Problem and response
Bring health context and familiar food into one flow.
The challenge
Generic nutrition advice misses personal context.
A single diet suggestion may not reflect a person's body measurements, health indicators, activity, restrictions, or goals.
Avenution combines those inputs into a personal analysis and uses the resulting profile to rank food suggestions.
The challenge
Nutrition data can feel far from local meals.
Food references centered on unfamiliar ingredients are harder to connect with everyday Indonesian eating.
The recommendation catalog brings together Indonesian ingredients and packaged foods with nutrition details.
The challenge
A one-time result is hard to revisit.
Without saved analyses, users have no convenient place to compare or reopen earlier results.
Signed-in users can return to their analysis history and review previously generated recommendations.
03 / User journey
From a health profile to a menu worth exploring.
- 01
Share a profile
Enter age, height, weight, selected health indicators, activity, food restrictions, and a personal goal.
- 02
Review the analysis
See BMI and its category, an estimated ideal-weight range, risk indicators, and a daily calorie target.
- 03
Classify a diet pattern
The analysis assigns a diet category using evidence from the health profile and goals.
- 04
Rank familiar foods
Food items are scored against the profile, restrictions, diet category, and nutrition values.
- 05
Explore the menu
Review up to eight varied suggestions with a match score and a suggested meal time.
04 / Recommendation engine
A staged pipeline turns profile data into ranked food.
The current classification uses evidence-weighted scoring inspired by Naive Bayes. It considers BMI category, selected health indicators, activity, and goal. A trained probabilistic Naive Bayes model with measured accuracy is a future roadmap item.
- 01
Health inputs
Age, body measurements, blood pressure, blood sugar, cholesterol, activity, restrictions, and goal.
- 02
Body analysis
BMI category, estimated ideal-weight range, risk flags, and a daily calorie estimate.
- 03
Diet classification
Evidence-weighted scoring selects Balanced, Low Carb, Low Sodium, or High Protein.
- 04
Food ranking
Score foods, apply restrictions, filter lower matches, and diversify the final menu.
Daily energy needs are estimated with the Mifflin-St Jeor equation and an activity factor. The target is adjusted by 15% for a selected deficit or surplus goal.
05 / Food data and ranking
Ground recommendations in an Indonesian food catalog.
Two food datasets contain roughly 3,000 items in total. Each item is evaluated against the user's diet type, health indicators, BMI, activity, goal, and selected food restrictions.
Indonesian ingredients
Nutrition references for local raw ingredients used in everyday cooking.
nutrition.csv · about 1,345 itemsPackaged foods
Processed products with nutrition details such as fiber and sodium.
nilai-gizi.csv · about 1,650 itemsDiet reference profiles
Reference profiles and diet labels used by the current classification logic.
diet_recommendations_dataset.csv · 1,000 rowsHigher-scoring foods are selected while limiting repeats across protein, carbohydrate, vegetable, fruit, and dairy categories.
06 / User features
Understand the result, not just the food list.
Body condition analysis
Calculate BMI and its category, estimate a weight range using the documented BMI reference of 18.5-24.9, and surface low, medium, or high risk indicators.
BMI · Weight range · Risk indicatorsCalorie target
Estimate daily energy needs with the Mifflin-St Jeor equation and an activity factor, then adjust the target to the selected goal.
BMR · Activity factor · Goal adjustmentHealth warnings
Show warnings for selected health indicators such as blood pressure, blood sugar, cholesterol, and body-weight categories.
Informational flags · Not a diagnosisDiet category
Choose a suitable recommendation pattern from Balanced, Low Carb, Low Sodium, and High Protein categories.
Four recommendation patternsPersonalized food menu
Explore varied food suggestions with a 0-100% match score and a suggested time to eat each item.
Up to 8 ranked suggestionsRestrictions and history
Set vegetarian, vegan, or gluten-free preferences, and reopen saved analyses from the account dashboard.
Dietary filters · Saved analysesEmail and password sign-in with email verification and password reset, Google OAuth, analysis history, and responsive light and dark themes support the broader experience.
07 / Admin tools
Give administrators control over the data behind results.
Admin dashboard
Review totals for users, analyses, and food records, plus a searchable list of recent analyses.
Food catalog management
Create, update, and remove food records and their nutrition information.
Smart CSV import
Detect an incoming dataset schema, suggest column mappings, preview rows, validate data, and confirm before importing.
Accounts and reports
Manage users with role-based permissions and export analysis summaries and recommendation details to multi-sheet Excel files.
08 / System and quality
Keep the recommendation pipeline organized in services.
Controllers and form requests handle web input and validation, while dedicated service classes coordinate the core analysis and admin workflows.
- 01
Web experience
Laravel-rendered Blade pages use Tailwind CSS and Alpine.js for responsive user and admin flows.
- 02
Application services
BodyAnalysisService calculates profile indicators; RecommendationService scores foods; AnalysisProcessingService coordinates the pipeline; PendingAnalysisService preserves guest input; and FoodCsvImportService handles imports.
- 03
Data and integrations
MySQL stores production records; SQLite supports tests. Excel exports and the /api/analysis endpoint connect analysis data to other workflows.
Core data model
User
Owns saved analyses and account-level history.
Account · profile · roleAnalysis
Stores the profile snapshot and calculated analysis result.
BMI · health indicators · diet type · calorie targetRecommendation
Connects an analysis to a ranked food suggestion.
Match score · suggested meal timeFood
Provides the nutrition values used during food scoring.
Calories · protein · carbs · fat · fiber · categoryOne user can save multiple analyses. Each analysis can contain multiple recommendations, and each recommendation points to a food record in the catalog.
Technology stack
Backend
- Laravel 10
- PHP 8.1+
- Service Layer
Frontend
- Blade
- Tailwind CSS 3
- Alpine.js
- Vite
Data and access
- MySQL 8
- SQLite tests
- Breeze
- Socialite
- Spatie Permission
Quality and delivery
- PHPUnit
- Cypress
- GitHub Actions
- Docker
- Railway
09 / Roadmap and disclaimer
Build from ranked suggestions toward longer-term planning.
Measure model performance
Train a probabilistic Gaussian or Multinomial Naive Bayes model from the reference dataset and report its evaluation metrics.
Make results easier to use over time
Explore weekly meal plans, shopping lists, and charts for BMI and calorie trends across saved analyses.
Extend access to other clients
Add authenticated API access with OpenAPI documentation and prepare for a mobile client.