Smart Recycling & Eco-Rewards Project

3 min read
Dart Fluttter Clean Architecture MVVM Sentry codemagic CI/CD mobx
Table of Contents

Project Overview

A mobile application that integrates Reverse Vending Machines (RVMs) to record recycling points in real time via QR code. Collected points can be redeemed for various attractive rewards at RVM locations located in various malls across Jakarta.

  • Role : Mobile Developer
  • Duration : May 2025 - Jul 2025
  • Tech Stack :Flutter , Dart, Mobx, MVVM , Clean Arch, Sentry, CodeMagic, CICD

User Interface Application

To see the UI, go directly to the application’s features section.

My Contribution

  • REST API Integration: Seamlessly connecting all frontend functionality of the application with backend services.

  • CI/CD Pipeline: Manually building and configuring build and deployment automation using codemagic.yaml.

  • Custom Error Logging: Implementing a custom Sentry to detect specific errors based on the architecture layer (View, ViewModel, or Repository).

  • Core Mobile Features: Developing local notification, QR detection, and GPS tracking features to calculate the user’s distance to the nearest RVM unit.

  • Localization: Implementing a multilingual system (Indonesian & English).

  • App Deployment: Successfully releasing the application to the Google Play Store and preparing it for release on the Apple App Store.

Technical Implementation

  • Architecture & State Management: Using Flutter with an MVVM pattern utilizing MobX, wrapped in a modular Clean Architecture structure.

  • QR Transaction Mechanism: Scanning a QR Code from the RVM screen automatically triggers a local success notification and immediately updates the transaction data in the UI.

  • Layer-Specific Error Tracking: Designing a custom Sentry Log class that is consistent across every API hit and layer (ViewModel, UseCase, Repo). This system is capable of recording detailed input/output data, error codes, payloads, and exceptions without recording sensitive user data (using data masking).

  • Dynamic & Responsive Layout: Creating a utility function for converting layout dimensions based on Figma’s scale percentage (e.g., base dimension 393x882). The UI is dynamically calculated based on the device’s native resolution to maintain precision and consistency across various screen sizes.

Feature Application

Disclaimer All product names, logos, and brands are anonymized due to NDA.

Auth System

Login/Register via standard email with secure OTP email verification.

View Screenshots

Home

Displays the user’s current points count and information about the nearest RVM location.

View Screenshots

Scan QR Code Transaction

The RVM machine’s QR code scanner allows users to claim points after dropping off recyclables.

View Screenshots

Transaction List

Provides a complete history of all waste disposal transactions and points earned.

View Screenshots
12

Notification

History list to view all incoming notifications.

View Screenshots

RVM Location List

Displays a list of available RVMs, complete with GPS-based distance calculations from the user’s location.

View Screenshots

User Management

Simple profile customization feature (change name, phone number, and password).

View Screenshots
12

Other Projects

Single-Merchant Multi-Branch E-Commerce with Integrated Inventory Management

2 min read

Multi-branch e-commerce (retail and wholesale) application in Indonesia with an integrated inventory management system.

Android Kotlin Clean Arch Koin +2

Iot HealthTech Platform (Stunting Prevention) Project

2 min read

A healthtech application specifically designed for medical personnel to detect stunting in children early. This application integrates IoT devices with weight scales in real-time for instant analysis.

Android Kotlin Kotlin Flow Constraint Layout +3