Back to projects

Case Study · 2024

Sastra Bali

An Android app for learning Balinese, a language at real risk of being forgotten by younger generations. Machine learning and cloud services behind it make the learning feel effortless.

My Role

Cloud computing cohort member, owning the cloud infrastructure with a partner.

Tech Stack

Node.jsGoogle CloudREST API

Balinese is a language at real risk of being forgotten by younger generations, and its script, Aksara Bali, is the part that goes first. It is hard to look something up when you cannot yet read the characters.

Sastra Bali is an Android app for learning it: a scanner that reads Aksara Bali from a photo, plus quizzes, readings and a dictionary. It was our capstone for Bangkit Academy, run by Google, GoTo and Traveloka.

I was in the cloud computing cohort and owned the infrastructure with a partner.

The problem

  • The script is the barrier. A dictionary is no help to someone who cannot read the word they are looking at, which is why the scanner mattered.
  • Machine learning models need somewhere to run. They cannot live on the phone, and the app has to reach them quickly enough that scanning feels instant.
  • A student team has to be able to operate it. Infrastructure nobody on the team understands is infrastructure that breaks at the demo.
  • Content has to be maintainable without a developer. Quizzes and readings change; shipping a new build for each change does not scale.

What I built

The architecture on Google Cloud

My partner and I designed the system architecture, then set up and managed the compute instances, cloud storage and the backend services around them. We kept it to pieces we could both reason about, and sized it to stay scalable, secure and cheap enough to actually run.

The APIs connecting app to models

I developed and deployed the REST APIs that connect the Android app to the cloud-hosted ML models and the databases behind them. That is the path a scan takes: photo up, script recognised, meaning back.

An admin dashboard for the content team

Quizzes and reading material are managed through a dashboard rather than through code, so the people writing the content can change it without waiting for a release.

The result

  • The scanner, quizzes and readings are served from infrastructure the team could operate and extend themselves.
  • Content is maintained through the dashboard rather than through a new build.
  • The project shipped as our Bangkit capstone.

Built with Node.js on Google Cloud, with REST APIs connecting the app to the models.