Nguyen Trung Hau2026-07-01Updated 2026-07-245 min read

Farmext

An all-in-one aquaculture platform where I owned Eshop, News/Community, and Warehouse Management, and co-owned Laboratory Management.

FlutterDartClean ArchitectureBLoCCubitREST APIFirebaseSQLiteGetItGoRouter

Overview

Farmext is a cross-platform Flutter application connecting multiple needs across the aquaculture ecosystem: company, farm, pond, and farming-cycle management; shopping for supplies and hatchery products; industry content; warehouse, finance, and laboratory operations; and IoT device integration. It serves farm owners, farm operators, shoppers, laboratories, and businesses on both iOS and Android.

Role

  • Developed Farmext at Tep Bac Technology from Aug 2023 to Apr 2025 as a Flutter Developer.
  • Owned the Eshop and News/Community modules, which represented the largest share of my work, and directly delivered Warehouse Management.
  • Co-owned Laboratory Management with another developer, collaborating on closely related testing and reporting workflows.
  • Translated aquaculture business requirements into approachable mobile workflows while collaborating with Product, Design, Backend, and QA.

Key Contributions

  • End-to-end Eshop: home and product discovery, search/filtering, product and shop details, cart, addresses, per-shop vouchers, shipping, VietQR, order creation/tracking, pre-order, reorder, reviews, and hatchery products linked to Lab results.
  • News/Community: a paginated feed with pull-to-refresh and infinite scrolling, HTML/image/video content, reactions, sharing, comments/replies, optimistic interaction updates, and location-based weather.
  • Warehouse Management: warehouses, products and categories, inventory adjustments, stock-in receipts, import/export history, and tracking feed and farm supplies consumed by ponds.
  • Laboratory Management: branches, members, linked farms, service packages, result entry and reports for environment, health, PCR, pathogens, and antibiotics, visualized with charts, gauges, maps, images, PDF, and video.

Engineering Approach and Challenges

  • Structured features with Clean Architecture across Presentation, Entity, Use Case, Repository contract, Data Source, API Model, and Repository implementation layers, using GetIt for dependency injection.
  • Managed concurrent asynchronous workflows with BLoC/Cubit, standardized loading, success, empty, and error states, and used Either<Failure, Data> to keep error handling separate from UI.
  • Handled large data sets with pagination, infinite scrolling, refresh, shimmer loading, image caching, and shared-state synchronization across screens.
  • Combined REST APIs, Firebase/Firestore, SQLite, and SharedPreferences; persisted carts and search history locally and organized navigation with GoRouter.
  • Integrated HTML, images, video, PDF, Google Maps, geolocation, QR scanning, VietQR, notifications, and content sharing across domain-specific workflows.

Tech Stack

Flutter, Dart 3, BLoC/Cubit, Provider, Clean Architecture, Repository & Use Case Pattern, GetIt, Dio/REST APIs, Firebase (FCM, Analytics, Firestore), SQLite, SharedPreferences, GoRouter, Google Maps, Geolocation, VietQR, and Codemagic CI/CD.

Links