Apip

Loading portfolio

MUHAMMAD AFIFKHOSYIDZAKI

Back to portofolio

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
Avenution food recommendation platform shown on a laptop with vegetable imagery.

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.

01

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.

Product response

Avenution combines those inputs into a personal analysis and uses the resulting profile to rank food suggestions.

02

The challenge

Nutrition data can feel far from local meals.

Food references centered on unfamiliar ingredients are harder to connect with everyday Indonesian eating.

Product response

The recommendation catalog brings together Indonesian ingredients and packaged foods with nutrition details.

03

The challenge

A one-time result is hard to revisit.

Without saved analyses, users have no convenient place to compare or reopen earlier results.

Product response

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.

  1. 01

    Share a profile

    Enter age, height, weight, selected health indicators, activity, food restrictions, and a personal goal.

  2. 02

    Review the analysis

    See BMI and its category, an estimated ideal-weight range, risk indicators, and a daily calorie target.

  3. 03

    Classify a diet pattern

    The analysis assigns a diet category using evidence from the health profile and goals.

  4. 04

    Rank familiar foods

    Food items are scored against the profile, restrictions, diet category, and nutrition values.

  5. 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.

  1. 01

    Health inputs

    Age, body measurements, blood pressure, blood sugar, cholesterol, activity, restrictions, and goal.

  2. 02

    Body analysis

    BMI category, estimated ideal-weight range, risk flags, and a daily calorie estimate.

  3. 03

    Diet classification

    Evidence-weighted scoring selects Balanced, Low Carb, Low Sodium, or High Protein.

  4. 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 items

Packaged foods

Processed products with nutrition details such as fiber and sodium.

nilai-gizi.csv · about 1,650 items

Diet reference profiles

Reference profiles and diet labels used by the current classification logic.

diet_recommendations_dataset.csv · 1,000 rows
Match thresholdAbove 60%
Menu sizeUp to 8 foods
Diversity ruleMax. 2 per category

Higher-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.

01

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 indicators
02

Calorie 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 adjustment
03

Health warnings

Show warnings for selected health indicators such as blood pressure, blood sugar, cholesterol, and body-weight categories.

Informational flags · Not a diagnosis
04

Diet category

Choose a suitable recommendation pattern from Balanced, Low Carb, Low Sodium, and High Protein categories.

Four recommendation patterns
05

Personalized food menu

Explore varied food suggestions with a 0-100% match score and a suggested time to eat each item.

Up to 8 ranked suggestions
06

Restrictions and history

Set vegetarian, vegan, or gluten-free preferences, and reopen saved analyses from the account dashboard.

Dietary filters · Saved analyses

Email 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.

01

Admin dashboard

Review totals for users, analyses, and food records, plus a searchable list of recent analyses.

02

Food catalog management

Create, update, and remove food records and their nutrition information.

03

Smart CSV import

Detect an incoming dataset schema, suggest column mappings, preview rows, validate data, and confirm before importing.

04

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.

  1. 01

    Web experience

    Laravel-rendered Blade pages use Tailwind CSS and Alpine.js for responsive user and admin flows.

  2. 02

    Application services

    BodyAnalysisService calculates profile indicators; RecommendationService scores foods; AnalysisProcessingService coordinates the pipeline; PendingAnalysisService preserves guest input; and FoodCsvImportService handles imports.

  3. 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 · role

Analysis

Stores the profile snapshot and calculated analysis result.

BMI · health indicators · diet type · calorie target

Recommendation

Connects an analysis to a ranked food suggestion.

Match score · suggested meal time

Food

Provides the nutrition values used during food scoring.

Calories · protein · carbs · fat · fiber · category

One 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.

01 / Recommendation engine

Measure model performance

Train a probabilistic Gaussian or Multinomial Naive Bayes model from the reference dataset and report its evaluation metrics.

02 / Planning tools

Make results easier to use over time

Explore weekly meal plans, shopping lists, and charts for BMI and calorie trends across saved analyses.

03 / Integration

Extend access to other clients

Add authenticated API access with OpenAPI documentation and prepare for a mobile client.