Skip to content
Back to Artificial Intelligence

// case study

Fruit freshness detection on GCP

An ML backend on Google Cloud for real-time image processing (Bangkit Academy).

Context

Bangkit Academy capstone, Cloud Computing track (Nov 2024), for the team app VeggieVision, which tells fresh fruit and vegetables from rotten ones. The cloud code is in the team repo.

Problem

A mobile app needed to judge fruit freshness from a photo in real time without overloading the user's device.

Approach

I built an ML-based image processing backend on Google Cloud, plus the API the mobile app talks to.

  • An Express (Node.js) API that loads a TensorFlow.js model converted from the ML team's model (Kaggle dataset, trained in Jupyter Notebook, exported to .h5).
  • A POST /scan endpoint that takes a photo, stores it in Cloud Storage, then runs the prediction.
  • /articles endpoints (GET, POST, DELETE) for in-app articles.
  • Deployed to App Engine (Node.js 18 runtime).

Result

Photos from the app are processed in the cloud and results return to the user in real time.

What I learned

Designing an API that works for both the mobile team and the ML team.