Farmext
An all-in-one aquaculture platform where I owned Eshop, News/Community, and Warehouse Management, and co-owned Laboratory Management.
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.