BuildCycle
// REFERENCE PROJECT — RETAIL-TECH · MOBILE APP & DATA PLATFORM

SparFux

Swipe supermarket deals. Shop smarter. Save together.

SparFux replaces the weekly hunt through supermarket brochures with a product people can actually use while planning a shop. Users choose nearby stores, search or swipe through current offers, compare prices, filter categories and build shopping lists together. Behind that simple mobile experience sits a full retail-data system: a Dart API coordinates users, lists, personalization and notifications, while a Python scraper fleet continuously normalizes offers from 12 retailer sources and classifies products with AI.

View in the App Store →
SparFux
Live offer engine
12 retailers
SparFux swipe view
SCRAPER → API → APPone offer model
Industry
Retail-tech · Consumer savings
Type
Cross-platform app + data platform
Cycle
Product build + ongoing operation
Stack
Flutter · Dart · MongoDB · Python/Selenium · Gemini · Firebase
// THE BRIEF

Supermarket deals are fragmented by retailer, location and calendar week. Finding one product means opening several apps or scanning brochures, while a useful shopping list lives somewhere else again. The brief for SparFux was to connect that broken journey end to end: collect local offers reliably, turn inconsistent retailer data into one searchable model and make discovery feel fast enough that users keep planning with it. The consumer app had to stay playful; the system behind it had to survive constantly changing source pages.

// WHAT SHIPPED
A Flutter app for iOS and Android with swipe and grid discovery, full-text search, price, discount and category filters
Location-aware store discovery with map view, retailer selection and offer counts for nearby branches
Shared shopping lists with invite links, custom entries, product search and collaborative check-off flows
Firebase authentication, push notifications, favorites, price history, personalization and premium flows
A Dart/MongoDB API for offer queries, users, live list events, store data, statistics and notification orchestration
Twelve retailer connectors with 16 parallel scraper workers, deduplication, store mapping and AI-assisted product categorization
// THE CYCLE
Phase 1 — Product Loop
From brochure browsing to one decision flow
We mapped the real job — find a relevant local offer and turn it into a planned purchase — then connected stores, discovery and shopping lists around that loop.
Phase 2 — Mobile Experience
A fast, playful deal interface
Swipe cards make casual discovery immediate; search, dense grids and filters cover purposeful shopping. Both modes write into the same store-specific lists.
Phase 3 — Data Platform
One offer model across twelve retailers
Retailer-specific scrapers feed one normalized offer and store model. Worker scheduling, retry logic, deduplication and AI categorization turn volatile pages into usable product data.
Phase 4 — Live Product
Shared lists, notifications and store release
The backend closes the loop with live list events, favorites, personalized category scores and offer notifications. SparFux shipped publicly on both mobile platforms.
Outcome
0
active retailer pipelines feeding one normalized offer model
0
connected codebases: mobile app, product API and data collection
// THREE REPOSITORIES, ONE PRODUCT

From retailer page to shared shopping list in one connected system.

The interface is only the final layer. SparFux works because collection, product logic and mobile experience share one offer model and one operating loop.

01PYTHON · SELENIUM · GEMINI · 16 WORKERS

Offer intelligence

Retailer-specific collectors schedule stores, normalize changing source data, deduplicate offers and classify products with image-aware AI.

02DART · MONGODB · FIREBASE · REST

Product API

A typed Dart service owns users, stores, offer search, ranking, shared-list events, favorites, statistics and push orchestration.

03FLUTTER · IOS · ANDROID · GOOGLE MAPS

Mobile experience

One Flutter codebase turns the system into swipes, search, maps, price history and collaborative shopping lists on iOS and Android.

// THE PRODUCT IN PEOPLE'S HANDS

A playful front end for a serious retail-data engine.

Swipe discovery — fast decisions on relevant local offers
Swipe discovery — fast decisions on relevant local offers
Retailer comparison — one entry point across supermarket chains
Retailer comparison — one entry point across supermarket chains
Store map — nearby branches define the personal offer feed
Store map — nearby branches define the personal offer feed
Price overview — dense comparison when users know what they need
Price overview — dense comparison when users know what they need
Category filters — from broad weekly deals to a focused shortlist
Category filters — from broad weekly deals to a focused shortlist
Price history — context before an offer becomes a purchase
Price history — context before an offer becomes a purchase
NEXT PROJECT
Vendra