Grocery Price Intelligence, Historical Transparency & AI Forecasting Engine for Bangladesh
"Discounts are loud. History is honest."
ShopSathi is an offline-first, high-performance grocery price intelligence and market transparency mobile application built for Bangladeshi shoppers. By tracking, indexing, and normalizing SKU data across 8 major supermarket chains in Dhaka and nationwide, ShopSathi exposes genuine price histories, unmasks deceptive discount claims, forecasts market trends, and delivers instant per-unit price comparisons across competing grocery retailers.
Powered by an embedded vectorized DuckDB analytics engine operating directly on compressed .parquet files, ShopSathi performs complex multi-variable aggregation, time-series forecasting, and cross-store candidate matching over 110,000+ products and 15.7M price points in under 50msโcompletely on-device without requiring continuous cloud connectivity.
| ๐ช Supermarket Store Catalog | โ๏ธ Settings, Sync & Typography |
|---|---|
![]() |
![]() |
| Shwapno store view with brand filters, sort controls, and ATL tag | Daily sync manager, custom AI API keys, typeface & font scaling |
- Multi-Tier Cascade Architecture: Tries active AI endpoints sequentially (
gemini-flash-lite-latestโgemini-2.5-flashโgroqโopenrouterโcustom openai-compatible) with zero user disruption. - Statistical Fallback Engine: If no API key is configured or offline, falls back to a deterministic multi-factor statistical model combining velocity, historical variance, and seasonal volatility.
- Actionable Structured Insights: Produces clean, bulleted market summaries:
- ๐ Market Snapshot: Current price dispersion across retailers and cheapest supermarket.
- ๐ฎ 7-Day & 30-Day Forecast: Directional predictions (Rising/Stable/Falling) with target price brackets.
- ๐ Key Supply Chain Factors: Transportation, seasonal harvest yields, and import tariffs.
- ๐ Shopper Strategy: Immediate buy recommendations vs wait strategies.
- Interactive Referenced Item Cards: Chat responses automatically parse and render tappable product cards with live store logos, current prices, normalized rates, and direct product detail navigation.
- In-Process Columnar OLAP: Directly executes vectorized SQL against compressed
.parquetdatasets stored locally on the device. - Ultra-Fast Sub-50ms Execution: Full-text searching, store-level filtering, percentile calculation, and cross-store aggregation across 110k+ items without server roundtrips.
- Incremental & Automated Daily Sync: Background delta synchronization keeps catalog records up to date automatically.
- Full Coverage of Major Supermarkets:
- ๐ด Shwapno (เฆธเงเฆฌเฆชเงเฆจ)
- ๐ก Chaldal (เฆเฆพเฆฒเฆกเฆพเฆฒ)
- ๐ข Meena Bazar (เฆฎเงเฆจเฆพ เฆฌเฆพเฆเฆพเฆฐ)
- ๐ฃ Othoba (เฆ เฆฅเฆฌเฆพ)
- ๐ต Metromart (เฆฎเงเฆเงเฆฐเงเฆฎเฆพเฆฐเงเฆ)
- ๐ข Unimart (เฆเฆเฆจเฆฟเฆฎเฆพเฆฐเงเฆ)
- ๐ฉต ShotejBazar (เฆธเฆคเงเฆเฆฌเฆพเฆเฆพเฆฐ)
- ๐ฉท Foodi (เฆซเงเฆกเฆฟ)
- Per-Unit Rate Normalization: Standardizes diverse packaging into comparable units (
เงณ/kg,เงณ/L,เงณ/piece), exposing true value across dissimilar product pack sizes.
- Zero Fake Drop Protection: Strictly rejects 0% flat-line "promotions".
-
Rigorous Multi-Point Thresholds:
- Requires
$\ge 2$ distinct recorded price changes. - Peak historical price must be at least
$5%$ higher than minimum. - Absolute drop must be
$\ge เงณ1.00$ . - Current price must reside within
$0.1%$ of the all-time recorded lowest price.
- Requires
- Historical Anchor: Charts normalize and render price histories anchored back to February 2026 with uniform monthly checkpoints.
- Interactive Scrub Cursor: Custom canvas painters provide scrub tooltips, ATH/ATL highlight rings, and high/low bounding bounds.
- Data Parity: Product card sparklines and full-screen detail charts share 100% identical data models and trajectories.
- Overflow-Proof Responsive Layouts: Clean flex-box distribution engineered to render flawlessly across all standard smartphone screen sizes and font scales.
- Theme Palette: Pure White (Paper), Noir (OLED Dark), Terminal Green, Sepia, Royal Indigo, and Rose Sunset.
- Typography & Font Scaling: Seamless switching between Plus Jakarta Sans, Inter, Outfit, JetBrains Mono, and Space Mono with customizable DPI font scaling.
ShopSathi/
โโโ app/
โ โโโ lib/
โ โ โโโ core/ # Design tokens, formatters, CustomPainters, receipt widgets
โ โ โ โโโ format.dart # Currency formatting (เงณ), date parsers, string normalization
โ โ โ โโโ palette.dart # Theme tokens (Paper, Ink, Accent, Good, Bad, Line)
โ โ โ โโโ gge1.dart # Encryption utilities (AES-256-GCM / PBKDF2)
โ โ โ โโโ widgets.dart # StoreLogo, Sparkline, Card, Tag, PaginationBar
โ โ โโโ data/ # Data layer, models, DuckDB repository & AI Service
โ โ โ โโโ ai_service.dart # Multi-model GenAI cascade & statistical forecast engine
โ โ โ โโโ catalog.dart # Supermarket definitions & category emoji mappings
โ โ โ โโโ downloader.dart # Mirror downloader & integrity verifier
โ โ โ โโโ models.dart # Product, PricePoint, CategorySummary, Forecast models
โ โ โ โโโ repo.dart # Vectorized DuckDB Parquet repository queries
โ โ โโโ state/ # Riverpod state management & persistent providers
โ โ โ โโโ app_state.dart # Navigation, comparison basket, AI config, sync state
โ โ โโโ ui/ # Screen presentations & layouts
โ โ โโโ shell.dart # Root navigation bar, drawer & global modal handlers
โ โ โโโ screens/
โ โ โ โโโ home.dart # Editorial masthead, hero banner, ATL shelf, drops feed
โ โ โ โโโ categories.dart # Taxonomy catalog, store filters & category tree drawer
โ โ โ โโโ search.dart # Deep search with multi-param filter chips & grid
โ โ โ โโโ product.dart # Detailed price chart, AI forecast card, competitor table
โ โ โ โโโ store.dart # Supermarket store catalog view & brand filters
โ โ โ โโโ compare.dart # Multi-product comparison graph & difference matrix
โ โ โ โโโ chat.dart # Ask Sathi AI chat interface with interactive item cards
โ โ โ โโโ dashboard.dart # Market Pulse, basket price index & store share rankings
โ โ โ โโโ explore_feed.dart # Dedicated full-screen feed for drops and ATL records
โ โ โ โโโ settings.dart # Daily sync, AI API key manager, themes & typography
โ โ โ โโโ splash.dart # Launch splash screen & offline engine bootstrap
โ โ โโโ main.dart # App entrypoint, Riverpod ProviderScope & theme setup
โ โโโ test/ # Unit, repository, and widget test suite
| Component | Technology | Role / Implementation |
|---|---|---|
| Framework | Flutter 3.24+ / Dart 3.5+ | Native cross-platform performance |
| Database Engine | Embedded DuckDB | In-process columnar OLAP querying on local Parquet files |
| AI Intelligence | Google Gemini / Groq / OpenAI | Dynamic multi-model cascade with statistical fallback |
| State Management | Flutter Riverpod 2.6+ | Compile-safe reactive state & dependency injection |
| Cryptography | PointyCastle / Crypto | AES-256-GCM authenticated encryption for archives |
| Typography | Google Fonts | Editorial Serif & Plus Jakarta Sans / JetBrains Mono |
| Image Caching | CachedNetworkImage | In-memory & on-disk disk LRU caching with shimmer |
- Flutter SDK (
>= 3.24.0) - Android Studio or VS Code with Flutter extensions
- Android device or emulator running API 24+
-
Clone the repository:
git clone https://github.com/ranehal/ShopSathi-flutter.git cd ShopSathi-flutter/app -
Fetch dependencies:
flutter pub get
-
Run on connected device or desktop:
# Run on connected Android phone / emulator flutter run # Or run on Windows Desktop flutter run -d windows
-
Execute Static Analysis & Tests:
flutter analyze flutter test
flutter build apk --releaseThe optimized release APK will be located at:
build/app/outputs/flutter-apk/app-release.apk
- 100% On-Device Queries: Search queries, comparison lists, and bookmarks never leave your phone.
- Client-Side Encrypted Archives: Full historical price archives use AES-256-GCM encryption with PBKDF2 key derivation.
- Bring-Your-Own-Key (BYOK) AI: Users can optionally supply their own API keys stored safely inside local
SharedPreferenceswithout intermediary proxy servers.
Distributed under the MIT License. See LICENSE for more information.
เฆญเฆพเฆฒเงเฆฌเฆพเฆธเฆพ เฆ เฆฌเฆฟเฆฐเฆพเฆฎ โ NEHAL ๐










