PROJECT LEAD DEVELOPER

Oodlestack: B2B E-commerce

Reduced network overhead by 40% through direct PostgreSQL demand aggregation functions.

CORE_STACK
FlutterDartRiverpodSupabasePostgreSQLGoogle Maps APIFreezed
SOURCE_CODE GITHUB_REPO

SYSTEM_ARCHITECTURE

FRONTEND_LAYER

  • Riverpod + Flutter Hooks
  • Freezed Immutable Models
  • Material Design 3
  • JS Interop for Google Maps

BACKEND_LAYER

  • Supabase Auth & Real-time
  • PostgreSQL Functions
  • Edge Functions (Legacy)
  • RLS Security Policies

KEY_ACHIEVEMENTS

Full Provider to Riverpod migration

Mobile-first responsive UI

Optimized demand-summary engine

Integrated multi-platform Geocoding

DETAILED_ANALYSIS

Reimagining B2B Demand Aggregation

Oodlestack is designed to solve the complexity of group buying. It’s not just an e-commerce app; it’s a coordination engine that aggregates demand from multiple buyers to unlock wholesale pricing tiers.

The challenge was building a system that felt like a native mobile app but lived on the web, with real-time updates for inventory and buying cycles.


🏗️ The Architecture: “State-First Engineering”

I migrated the entire codebase from Provider to Riverpod, adopting a functional approach to state management.

1. The Reactive UI

By using HookConsumerWidget, I combined the power of Riverpod’s global state with Flutter Hooks’ local lifecycle management. This resulted in a significantly cleaner UI layer where data fetching, error handling, and animations are handled declaratively.

2. The Backend: Moving Logic to the Metal

Initially, demand aggregation was handled in JavaScript Edge Functions. To improve performance, I moved this logic directly into PostgreSQL functions within Supabase.

  • The Result: Data processing happens where the data lives, reducing network round-trips and ensuring atomicity during complex inventory updates.

🛠️ Key Engineering Hurdles

  • Google Maps & JS Interop: Implementing location search on Flutter Web required deep-diving into JavaScript Interop. I built a hybrid location service that uses the Google Maps JS SDK on the web (to avoid CORS) and REST APIs on mobile.
  • Immutable Data Flow: Leveraging Freezed for models ensured that state changes are predictable and bug-free. The entire app follows a strict “Unidirectional Data Flow,” making it highly maintainable as the feature set grows.

🚀 Impact & Features

Today, Oodlestack provides a seamless experience for both community organizers and business buyers:

  • Real-time Inventory: Supabase Real-time ensures that when a buyer places an order, the community stock levels update instantly for everyone.
  • Demand Visualization: A calendar-based view of buying cycles that dynamically calculates pricing based on total aggregated volume.
  • Mobile-First Design: Optimized for field-use by business owners, featuring high-touch targets and smooth flutter_animate transitions.