Location-Based Discovery App | Clean Architecture + Riverpod
Pin important docs and links here
All ideas and future work
Critical features for launch
Ready to start
Currently being worked on
Code review / testing
Completed and deployed
Ready for app store
Description:
Zapp Active - Location-based discovery app with AR gamification
Tech Stack:
- Flutter + Riverpod 2.x
- Clean Architecture (Domain/Data/Presentation)
- GraphQL API
- Mapbox GL
- ARKit/ARCore
Key Features:
1. Discover Tab - Map-based exploration
2. Search Tab - Intent-driven discovery
3. AR Scan - Camera-based item finding
4. Saved Tab - Favorites management
5. Profile Tab - User settings & achievements
Links: - Clean Architecture Pattern - Two-Mapper Data Flow - Riverpod State Management - Feature Structure Template
Links: - Design System Docs - Interactive Showcase (v2.5) - Component Library - Color Palette (#E11D48 primary) - Lucide Icons
Links: - Discover Tab Spec (60+ pages) - Search Tab Spec (70+ pages) - AR Scan Button Spec - Design vs Search Comparison
Links: - GitHub Repository - GraphQL API Docs - Figma Designs - Testing Environment - Production App
Checklist: - [ ] 100 active users in first month - [ ] 30% weekly retention - [ ] 5 hidden items discovered per user - [ ] 4.0+ app store rating - [ ] <2s average load time
Checklist: - [ ] Social sharing of discoveries - [ ] User-generated content - [ ] Custom map themes - [ ] Advanced achievement system - [ ] Leaderboards - [ ] Friend system - [ ] Chat/messaging
Checklist: - [ ] 3D building mode - [ ] AR navigation - [ ] Voice control - [ ] Offline mode - [ ] Custom collections - [ ] Event calendar integration - [ ] Premium subscriptions
Checklist: - [ ] Natural language search - [ ] Smart recommendations - [ ] Auto-generated summaries - [ ] Personalized feed - [ ] Predictive discovery
Checklist: - [ ] Business analytics dashboard - [ ] Promoted pins - [ ] Featured listings - [ ] Booking integration - [ ] Review system
Labels: ๐ฅ Critical, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Create Flutter project - [ ] Configure Clean Architecture folder structure - [ ] Set up Riverpod dependencies - [ ] Configure GraphQL client - [ ] Add Mapbox SDK - [ ] Add ARKit/ARCore plugins - [ ] Set up Lucide icons package - [ ] Configure build variants (dev/staging/prod) - [ ] Set up environment variables - [ ] Initialize Git repository
Notes:
dependencies:
flutter_riverpod: ^2.x
graphql_flutter: ^5.x
mapbox_gl: ^0.x
dartz: ^0.10.xLabels: ๐ฅ Critical, ๐ช Design, ๐ฏ MVP Checklist: - [ ] Create color constants (#E11D48 primary) - [ ] Set up typography styles (Aktiv Grotesk) - [ ] Configure spacing tokens (8-point grid) - [ ] Create base component library - [ ] Implement dark mode support - [ ] Add Lucide icon integration - [ ] Create reusable card variants - [ ] Build button system (5 sizes, 6 variants)
Labels: ๐ฅ Critical, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Create domain layer structure - [ ] Set up data sources (abstract + impl) - [ ] Implement repository pattern - [ ] Create entity models - [ ] Build two-mapper pattern - [ ] Set up use cases - [ ] Configure Riverpod providers - [ ] Implement error handling (Either)
Labels: ๐ฅ Critical, ๐บ๏ธ Map, ๐ฏ MVP Checklist: - [ ] Integrate Mapbox GL - [ ] Implement user location tracking - [ ] Add location permissions handling - [ ] Create map controller - [ ] Implement pan/zoom gestures - [ ] Add recenter button - [ ] Show loading states - [ ] Handle map errors
Technical Notes:
Domain Layer:
- MapDataSource (abstract)
- MapRepository
- GetUserLocationUseCase
- GetNearbyPinsUseCase
Presentation Layer:
- MapProvider (StateNotifier)
- DiscoverPage
- MapWidget
Labels: ๐ฅ Critical, ๐บ๏ธ Map, ๐ฏ MVP Checklist: - [ ] Create pin entity models - [ ] Implement GraphQL pin queries - [ ] Create custom map markers - [ ] Add category icons to pins - [ ] Implement pin tap handling - [ ] Add pin clustering (basic) - [ ] Show pin count on clusters - [ ] Handle pin loading states
Labels: ๐ฅ Critical, ๐บ๏ธ Map, ๐ฏ MVP Checklist: - [ ] Design preview card component - [ ] Implement bottom sheet - [ ] Add swipe-to-dismiss gesture - [ ] Show item details in card - [ ] Add โView Detailsโ button - [ ] Add โSaveโ button - [ ] Implement smooth animations - [ ] Handle sheet state management
Design Specs: - Card height: 200px - Corner radius: 16px - Swipe threshold: 100px - Animation duration: 300ms
Labels: ๐ง High Priority, ๐บ๏ธ Map, ๐ฏ MVP Checklist: - [ ] Create category filter chips - [ ] Implement filter state management - [ ] Update pins based on filter - [ ] Add โClear filtersโ option - [ ] Show active filter count - [ ] Smooth filter transitions - [ ] Persist filter preferences
Categories: - ๐ฝ๏ธ Food & Drink - ๐๏ธ Shopping - ๐ญ Entertainment - ๐๏ธ Culture - ๐ณ Outdoors - ๐ Hidden Items
Labels: ๐ฅ Critical, ๐ Search, ๐ฏ MVP Checklist: - [ ] Create search bar component - [ ] Implement debounced search (300ms) - [ ] Add clear button - [ ] Show search icon - [ ] Implement autocomplete dropdown - [ ] Handle keyboard focus - [ ] Add loading indicator - [ ] Cache recent searches
Labels: ๐ฅ Critical, ๐ Search, ๐ฏ MVP Checklist: - [ ] Create result card component - [ ] Implement infinite scroll - [ ] Add pagination (20 items per page) - [ ] Show distance from user - [ ] Add โSaveโ button on cards - [ ] Implement card tap navigation - [ ] Show empty state - [ ] Add skeleton loaders
Labels: ๐ง High Priority, ๐ Search, ๐ฏ MVP Checklist: - [ ] Create filter panel UI - [ ] Add distance slider (0-10km) - [ ] Add price range selector - [ ] Add rating filter - [ ] Add category multi-select - [ ] Show active filter badges - [ ] Implement โApplyโ button - [ ] Add โClear allโ option
Labels: ๐ง High Priority, ๐ Search, ๐ฏ MVP Checklist: - [ ] Create sort dropdown - [ ] Implement Distance sort - [ ] Implement Rating sort - [ ] Implement Price (Low to High) - [ ] Implement Price (High to Low) - [ ] Implement Newest sort - [ ] Show current sort indicator - [ ] Persist sort preference
Labels: ๐ฅ Critical, ๐ท AR, ๐ฏ MVP Checklist: - [ ] Create floating action button - [ ] Position in center of tab bar - [ ] Add elevation/shadow - [ ] Implement pulse animation - [ ] Add tap haptic feedback - [ ] Handle button states - [ ] Design icon (camera/scan)
Design: - Size: 56px diameter - Position: Center, elevated 8px - Color: Primary red (#E11D48) - Shadow: 0 4px 12px rgba(0,0,0,0.15)
Labels: ๐ง High Priority, ๐ท AR, ๐ฏ MVP Checklist: - [ ] Integrate ARKit/ARCore - [ ] Request camera permissions - [ ] Implement camera preview - [ ] Add GPS overlay - [ ] Show nearby items in AR - [ ] Add scan indicator - [ ] Implement QR code detection - [ ] Handle AR errors
Labels: ๐ง High Priority, ๐ท AR, ๐ฏ MVP Checklist: - [ ] Create hidden item models - [ ] Implement proximity detection - [ ] Add unlock animation - [ ] Show discovery notification - [ ] Award achievement badge - [ ] Update user stats - [ ] Add confetti effect - [ ] Store discovered items
Gamification: - Detection radius: 5m - Discovery animation: 500ms - Badge reveal: Scale + fade - Haptic: Heavy impact
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Create favorites data model - [ ] Implement local storage (Hive) - [ ] Show saved items list - [ ] Add remove button - [ ] Group by category - [ ] Add search within saves - [ ] Show empty state - [ ] Sync with backend
Labels: ๐จ Medium Priority, ๐ฏ MVP Checklist: - [ ] Create collection models - [ ] Add โNew Collectionโ button - [ ] Show collections grid - [ ] Add items to collections - [ ] Edit collection names - [ ] Delete collections - [ ] Show collection count
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Show user avatar - [ ] Display username - [ ] Show discovery stats - [ ] Add settings button - [ ] Implement logout - [ ] Show account details - [ ] Add edit profile option
Labels: ๐จ Medium Priority, ๐ฏ MVP, ๐ฎ Gamification Checklist: - [ ] Create achievement models - [ ] Design achievement badges - [ ] Show earned achievements - [ ] Add progress bars - [ ] Implement unlock logic - [ ] Add achievement notifications - [ ] Show total points
Achievement Ideas: - First Discovery (1 hidden item) - Explorer (10 discoveries) - Master Explorer (50 discoveries) - 7-Day Streak - Category Expert (all items in category)
Labels: ๐จ Medium Priority, ๐ฏ MVP Checklist: - [ ] Show recent discoveries - [ ] Display check-ins - [ ] Add timestamps - [ ] Show activity map - [ ] Implement date filters - [ ] Export activity data
Labels: ๐ฅ Critical, ๐ฏ MVP Checklist: - [ ] Create login screen - [ ] Create signup screen - [ ] Implement email/password auth - [ ] Add Google Sign-In - [ ] Add Apple Sign-In - [ ] Handle auth errors - [ ] Store auth tokens - [ ] Implement logout
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Design welcome screen - [ ] Create feature highlights (3-5 screens) - [ ] Add progress indicators - [ ] Implement swipe navigation - [ ] Add โSkipโ option - [ ] Request permissions (location, camera) - [ ] Show only on first launch
Labels: ๐ฅ Critical, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Set up GraphQL client - [ ] Define schema models - [ ] Implement queries (pins, search) - [ ] Implement mutations (save, discover) - [ ] Add authentication headers - [ ] Handle API errors - [ ] Implement retry logic - [ ] Add request caching
Labels: ๐ฅ Critical, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Create data source entities - [ ] Implement repository entities - [ ] Build Mapper 1 (API โ Repository) - [ ] Build Mapper 2 (Repository โ Model) - [ ] Implement error handling - [ ] Add logging - [ ] Write unit tests
Data Flow:
API Response
โ
DataSourceEntity
โ
MAPPER 1
โ
RepositoryEntity
โ
MAPPER 2
โ
Model (Use Cases)
โ
Riverpod Provider
โ
UI
Labels: ๐ฅ Critical, ๐ฏ MVP Checklist: - [ ] Implement bottom navigation - [ ] Add 5 tabs (Discover, Search, AR, Saved, Profile) - [ ] Handle tab switching - [ ] Add tab icons (Lucide) - [ ] Implement deep linking - [ ] Preserve tab state - [ ] Add navigation animations
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Create skeleton loaders - [ ] Add spinner components - [ ] Design error screens - [ ] Implement retry buttons - [ ] Add network error handling - [ ] Show offline mode message - [ ] Add toast notifications
Labels: ๐จ Medium Priority, ๐ฏ MVP Checklist: - [ ] Page transition animations (300ms) - [ ] Card hover/press animations - [ ] Button press feedback - [ ] Bottom sheet slide animations - [ ] Toast slide-in/out - [ ] Loading state animations - [ ] Implement easing curves
Animation Timing: - Fast: 100-200ms (buttons, toggle) - Medium: 300ms (transitions, cards) - Slow: 500ms+ (page loads, reveals)
Labels: ๐ง High Priority, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Test use cases - [ ] Test repositories - [ ] Test mappers - [ ] Test providers - [ ] Test utilities - [ ] Achieve 70%+ coverage
Labels: ๐จ Medium Priority, ๐ฆ Technical, ๐ฏ MVP Checklist: - [ ] Test core components - [ ] Test navigation - [ ] Test form inputs - [ ] Test gestures - [ ] Test animations
Labels: ๐จ Medium Priority, ๐ฆ Technical Checklist: - [ ] Test complete user flows - [ ] Test API integration - [ ] Test authentication - [ ] Test data persistence
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Optimize map rendering - [ ] Implement image caching - [ ] Reduce bundle size - [ ] Optimize API calls - [ ] Profile app performance - [ ] Fix memory leaks - [ ] Target <2s load time
Labels: ๐ฅ Critical, ๐ฏ MVP Checklist: - [ ] Create app icons (iOS/Android) - [ ] Design splash screens - [ ] Write app description - [ ] Take screenshots (5+ per platform) - [ ] Create preview videos - [ ] Set up app store listings - [ ] Submit for review
Labels: ๐ง High Priority, ๐ฏ MVP Checklist: - [ ] Set up TestFlight (iOS) - [ ] Set up Google Play Beta - [ ] Recruit 20-50 beta testers - [ ] Collect feedback - [ ] Fix critical bugs - [ ] Iterate based on feedback - [ ] Prepare for launch
Cards ready to be started - pull from MVP list
Active work - limit to 3-5 cards max
Code review, testing, QA
Completed features - archive after 2 weeks
Features ready for production deployment
Goal: Project setup complete Cards to complete: - Project Setup & Configuration - Design System Implementation - Core Architecture Setup
Goal: Basic map working Cards to complete: - Basic Map Integration - Pin System & Display - Category Filtering
Goal: Search functional Cards to complete: - Search Bar & Input - Search Results List - Filtering System
Goal: All tabs functional Cards to complete: - Center Button Component - AR Camera View - Favorites List
Goal: User accounts working Cards to complete: - Login/Signup Flow - User Profile Display - Achievements System
Goal: Production ready Cards to complete: - Loading & Error States - Animations & Transitions - Unit Tests - Performance Optimization
Goal: Live in app stores Cards to complete: - Beta Testing - App Store Preparation - Final bug fixes - Launch! ๐
Create a card that counts down to launch day! Update daily with: - Days until MVP launch - Features completed % - Tests passing % - Performance metrics
Celebrate wins: - โ First feature completed - โ 100% test coverage milestone - โ 1000th commit - โ Beta launch - โ App store approval - โ First 100 users
Add screenshots weekly to show progress Shows visible progress to keep motivated!
GOAL: Get Mapbox GL working with user location
USER STORY:
As a user, I want to see my location on a map so that I can discover nearby places.
ACCEPTANCE CRITERIA:
โ
Map displays correctly on iOS and Android
โ
User location shown with blue dot
โ
Map can be panned and zoomed smoothly
โ
Recenter button returns to user location
โ
Loading state shown while map initializes
โ
Error message if location permission denied
TECHNICAL TASKS:
- [ ] Add mapbox_gl dependency
- [ ] Configure Mapbox API key
- [ ] Create MapWidget component
- [ ] Implement location permissions
- [ ] Add MapProvider (Riverpod)
- [ ] Create GetUserLocationUseCase
- [ ] Handle map loading states
- [ ] Test on real devices
DESIGN SPECS:
- Map style: Mapbox Streets
- User location: Blue circle, 16px
- Recenter button: Bottom-right, 44x44px
NOTES:
- Need Mapbox API key from project manager
- Test in various locations for accuracy
- Consider offline map caching later
BLOCKED BY:
- None
LINKS:
- Mapbox Flutter docs
- Design spec: Discover Tab section 2.1
Title: [BLOCKED] - Issue description Label: โฌ Blocked Description: Whatโs blocking you and what you need
Board Version: 1.0 Created: October 2025 Status: Ready to use!
Now stop reading and start building! Youโve got this, boss! ๐ช