|
| 1 | + |
| 2 | +# PetFolio Flutter App |
| 3 | + |
| 4 | +## Overview |
| 5 | + |
| 6 | +PetFolio is a pet social and marketplace platform that allows users to connect with other pet owners, find and list pets for adoption, and buy and sell pet products. |
| 7 | + |
| 8 | +## Features |
| 9 | +--- |
| 10 | + |
| 11 | +### 🔐 Authentication |
| 12 | +- Email/password sign up and login |
| 13 | +- Session persistence across app restarts |
| 14 | +- Auto-redirect based on auth state (splash → login → home) |
| 15 | +- Profile update (name, bio, location, profile image) |
| 16 | +- Logout with confirmation dialog |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +### 🏠 Home Feed (Social) |
| 21 | +- Instagram-style scrollable post feed |
| 22 | +- Stories row with per-pet story creation |
| 23 | +- Pull-to-refresh |
| 24 | +- Real-time like updates via Supabase Realtime |
| 25 | +- Optimistic like toggle |
| 26 | +- Comment bottom sheet with live comment list |
| 27 | +- Post sharing via native share sheet |
| 28 | +- Post creation (with media upload, caption, location, pet tagging) |
| 29 | +- Post editing and deletion (own posts only) |
| 30 | +- Story creation (select which pet posts the story) |
| 31 | +- Story viewing |
| 32 | +- Story deletion |
| 33 | +- Notification sent on like, comment, and share |
| 34 | +- Shimmer loading skeleton |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +### 🔍 Discovery / Breeding Matching |
| 39 | +- Tinder-style swipeable pet card stack |
| 40 | +- Swipe right to like, swipe left to pass |
| 41 | +- Animated swipe-out and snap-back physics |
| 42 | +- Action buttons: Like, Nope, View Profile (Star) |
| 43 | +- Filter chips: For You, Same Breed, Nearby |
| 44 | +- Text search across pet name, breed, animal type |
| 45 | +- Multi-pet selector bar (browse as different pets) |
| 46 | +- My Listings tab — manage your breeding-listed pets |
| 47 | +- Nearby tab (distance-sorted view) |
| 48 | +- Like/match request system |
| 49 | +- Duplicate request prevention |
| 50 | +- Notification sent to receiver on like |
| 51 | + |
| 52 | +--- |
| 53 | + |
| 54 | +### 🐾 Pet Profiles |
| 55 | +- Owner profile view (bio, location, email, follower/following counts) |
| 56 | +- Individual pet profile view (breed, animal type, verified badge, bio) |
| 57 | +- Pet carousel selector (switch between owner and each pet) |
| 58 | +- Post grid with category filter chips (Playtime, Nap, Outdoor, Food) |
| 59 | +- Follower/following count (tappable → opens list) |
| 60 | +- Edit owner profile (name, bio, location, profile image upload) |
| 61 | +- Edit pet profile (name, breed, age, bio, image upload) |
| 62 | +- Add new pet |
| 63 | +- Share profile (generates deep link) |
| 64 | +- Public care badges row on owner profile |
| 65 | +- Visitor profile view (follow/unfollow, send match request, message) |
| 66 | +- Logout from profile |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +### 💬 Messaging |
| 71 | +- Messages inbox with search |
| 72 | +- Unread count badge per thread |
| 73 | +- Real-time message delivery via Supabase Realtime |
| 74 | +- Message bubbles with date separators |
| 75 | +- Floating pill input bar |
| 76 | +- Attachment sheet (camera, gallery, document — UI ready, marked coming soon) |
| 77 | +- Voice message button (UI ready, marked coming soon) |
| 78 | +- Tap avatar to open other pet's profile |
| 79 | +- Thread auto-created when a match is accepted (DB trigger) |
| 80 | +- Mark thread as read on open |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +### 🔔 Notifications |
| 85 | +- Activity tab: likes, comments, shares, follows, orders |
| 86 | +- Requests tab: incoming breeding match requests |
| 87 | +- Accept / Decline match requests inline |
| 88 | +- "Like Back" → creates match + opens chat |
| 89 | +- Unread count badge on home screen icon |
| 90 | +- Mark all as read on open |
| 91 | +- Tap notification → navigate to relevant entity (post, order, messages) |
| 92 | + |
| 93 | +--- |
| 94 | + |
| 95 | +### 🐕 Pet Care Diary (Core Feature) |
| 96 | +**Care Diary Tab:** |
| 97 | +- Daily care log per pet (auto-creates today's log) |
| 98 | +- Breakfast / Dinner / Snack feeding toggles |
| 99 | +- Water cups tracker (increment/decrement, clamped to goal) |
| 100 | +- Mood selector (Sleepy, Happy, Playful, Sick) |
| 101 | +- Custom daily checklist with toggle tasks |
| 102 | +- Checklist progress bar with percentage |
| 103 | +- Personalized nudge messages based on onboarding data |
| 104 | +- Edit Goals modal (calorie goal, water goal, exercise goal) |
| 105 | +- Bento grid overview: Tasks ring, Calories ring, Water ring |
| 106 | +- 7-day streak banner with day flags |
| 107 | +- Week completion mask (Mon–Sun) |
| 108 | +- Debounced auto-save (400ms) to Supabase |
| 109 | +- Offline-first: serves stale cache immediately, then refreshes |
| 110 | +- Care setup banner → onboarding flow |
| 111 | + |
| 112 | +**Gamification:** |
| 113 | +- Care points system (up to 10 pts/day, 2 pts per task) |
| 114 | +- 30-day care challenge progress bar |
| 115 | +- Streak days counter (current + best) |
| 116 | +- Streak freeze mechanic (2 per week) |
| 117 | +- Badge unlock system: |
| 118 | + - First Log, Streak 3/7/14 days |
| 119 | + - Week Complete, Perfect Week |
| 120 | + - 30-Day Challenge |
| 121 | + - Points 100 / 500 |
| 122 | + - Nutrition Ninja (7-day feeding streak) |
| 123 | + - Hydration Station (7-day water goal streak) |
| 124 | + - Mood Tracker (7-day mood streak) |
| 125 | +- Achievements screen: level card, stat boxes, 30-day path, badge grid (locked/unlocked) |
| 126 | +- Public badge showcase editor (choose up to 3 badges to show on profile) |
| 127 | +- Badge sharing via native share |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +### 🏥 Health Tab (inside Pet Care) |
| 132 | +- Health overview card with alert chips (meds due, vet countdown, parasite overdue, active symptoms) |
| 133 | +- **Vitals & Weight:** log weight + BCS score (1–9), weight trend chart (7/30/90d range selector), delta vs prior |
| 134 | +- **Medications:** add/edit/delete medications, mark dose given/skipped, frequency options |
| 135 | +- **Vet Appointments:** add/edit/cancel appointments, upcoming list |
| 136 | +- **Vaccinations:** add, mark complete, scheduled/completed status |
| 137 | +- **Parasite Prevention:** log treatments, overdue alerts, latest per type |
| 138 | +- **Dental Logs:** home brushing and professional cleaning logs |
| 139 | +- **Allergies:** add/remove allergy entries |
| 140 | +- **Symptoms:** log symptom type + severity (mild/moderate/severe) + notes, resolve symptoms, active/resolved split |
| 141 | + |
| 142 | +--- |
| 143 | + |
| 144 | +### 🍽️ Feeding Tab (inside Pet Care) |
| 145 | +- Breakfast / Dinner / Snack / Treats tracking |
| 146 | +- Calorie progress toward daily goal |
| 147 | +- Treat count and kcal tracking |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +### 🛒 Marketplace |
| 152 | +- Product grid (2-column) with category filter chips: All, Food, Toys, Bedding, Grooming, Treats, Accessories |
| 153 | +- Personalized greeting header |
| 154 | +- Member exclusive promo banner |
| 155 | +- Product detail screen |
| 156 | +- Add to cart with snackbar confirmation |
| 157 | +- Cart with item count badge |
| 158 | +- Cart screen (view/manage items) |
| 159 | +- Order history screen |
| 160 | +- Order status notifications |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +### 🔎 Search |
| 165 | +- Unified search across Posts, Pets, and Products (3 tabs) |
| 166 | +- Debounced search (400ms) |
| 167 | +- Clear button |
| 168 | +- Auto-focus on open |
| 169 | +- Post results with like/comment actions |
| 170 | +- Pet results → tap to open profile |
| 171 | +- Product results → add to cart |
| 172 | + |
| 173 | +--- |
| 174 | + |
| 175 | +### 💰 Expense Tracker |
| 176 | +- Monthly budget dashboard with progress bar |
| 177 | +- Total spending display |
| 178 | +- Category breakdown grid (Food, Vet, Grooming, Toys, Accessories, Other) |
| 179 | +- Upcoming bills section |
| 180 | +- Transaction list with swipe-to-delete |
| 181 | +- Add expense modal (title, amount, category, date picker) |
| 182 | +- Edit monthly budget dialog |
| 183 | +- Period selector (This Month / Last 3 Months / This Year) |
| 184 | + |
| 185 | +--- |
| 186 | + |
| 187 | +### 📈 Growth Charts |
| 188 | +- Weight history line chart (fl_chart) |
| 189 | +- Height history bar chart (fl_chart) |
| 190 | +- Time range selector (3M / 6M / 1Y / ALL) |
| 191 | +- Trend indicator chip |
| 192 | +- Milestones list |
| 193 | +- Log measurement bottom sheet (weight + height) |
| 194 | + |
| 195 | +--- |
| 196 | + |
| 197 | +### 🏥 Vet Booking |
| 198 | +- Vet listing with rating, distance, specialty, price tier |
| 199 | +- Category filter chips (All, General, Dental, Surgery, Emergency) |
| 200 | +- Search bar |
| 201 | +- Booking detail sheet: date picker (14-day scroll), time slot grid |
| 202 | +- Confirm booking with snackbar |
| 203 | + |
| 204 | +--- |
| 205 | + |
| 206 | +### 🚨 Emergency Care |
| 207 | +- Nearby emergency vet map button |
| 208 | +- Pet digital ID / QR code card |
| 209 | +- Immediate action grid (CPR, Bleeding, Heatstroke, Fractures) |
| 210 | +- 24/7 hotlines (Pet Poison Helpline, ASPCA) with tap-to-call |
| 211 | +- Toxic food items list |
| 212 | +- SOS floating action button (calls hotline) |
| 213 | + |
| 214 | +--- |
| 215 | + |
| 216 | +### 👥 Community Groups |
| 217 | +- Suggested groups list with member count and join/open button |
| 218 | +- Trending categories grid (Training, Nutrition, Puppy Care, Senior Pets) |
| 219 | +- Create group button |
| 220 | + |
| 221 | +--- |
| 222 | + |
| 223 | +### 🔍 Lost & Found |
| 224 | +- Lost Pets / Found Pets tabs |
| 225 | +- Pet cards with photo, breed, location, time, reward badge |
| 226 | +- Report pet FAB |
| 227 | +- Contact finder button |
| 228 | +- Share button |
| 229 | + |
| 230 | +--- |
| 231 | + |
| 232 | +### 🐶 Adoption Center |
| 233 | +- Tinder-style swipe card stack for adoptable pets |
| 234 | +- ADOPT / NEXT swipe stamps |
| 235 | +- Pet info overlay (name, age, location, tags) |
| 236 | +- Verified badge |
| 237 | + |
| 238 | +--- |
| 239 | + |
| 240 | +### 🎓 Pet Training |
| 241 | +- Training hero card with level + progress bar |
| 242 | +- Skill categories grid (Obedience, Agility, Social, Tricks) with completion progress |
| 243 | +- Daily exercises list |
| 244 | +- Find Trainers promotion card |
| 245 | +- New Session FAB |
| 246 | + |
| 247 | +--- |
| 248 | + |
| 249 | +### 🛡️ Insurance Hub |
| 250 | +- Active policy card (plan name, deductible, reimbursement %, annual limit, renewal date) |
| 251 | +- Coverage breakdown (Accidents, Illnesses, Diagnostics, Dental) |
| 252 | +- Recent claims list with status (Approved/Pending) |
| 253 | +- Document vault (PDF/image storage with sync status) |
| 254 | +- Insurance perks / multi-pet discount card |
| 255 | +- File claim bottom sheet (subject, amount, date, document upload) |
| 256 | + |
| 257 | +--- |
| 258 | + |
| 259 | +### 🗺️ Pet-Friendly Places |
| 260 | +- Map view / list view toggle |
| 261 | +- Search bar overlay |
| 262 | +- Category filter chips (Parks, Cafes, Hotels, Vets) |
| 263 | +- Places carousel at bottom of map |
| 264 | +- Place cards with rating, distance, open status, directions button |
| 265 | +- My location FAB |
| 266 | + |
| 267 | +--- |
| 268 | + |
| 269 | +### 📅 Pet Events |
| 270 | +- (Route registered: `/events` → `PetEventDiscoveryScreen`) |
| 271 | + |
| 272 | +--- |
| 273 | + |
| 274 | +### 🍎 Nutrition Planner |
| 275 | +- Daily calorie budget card with macro breakdown (Protein/Fats/Carbs) |
| 276 | +- Hydration tracker with animated circular progress |
| 277 | +- Safe food search bar |
| 278 | +- Meal schedule with checkboxes (Breakfast, Lunch, Dinner) |
| 279 | +- Dietary profile tags (Grain-Free, Low Sodium, Sensitive Stomach) |
| 280 | +- Smart nutrition tip |
| 281 | +- Add meal button |
| 282 | + |
| 283 | +--- |
| 284 | + |
| 285 | +### 🐾 Pet Sitter Dashboard |
| 286 | +- Top-rated sitters list (rating, jobs, price/hr) |
| 287 | +- Post a job card |
| 288 | +- Upcoming bookings list |
| 289 | + |
| 290 | +--- |
| 291 | + |
| 292 | +### 🔬 AI Breed Identifier |
| 293 | +- Camera preview with corner frame overlay |
| 294 | +- Animated scan line |
| 295 | +- Start Precision Scan button |
| 296 | +- Import from Gallery button |
| 297 | +- Scan history horizontal scroll |
| 298 | +- Results sheet: primary match + secondary match with confidence %, breed characteristics, lifespan/weight/group stats |
| 299 | +- Add to Pet Profile button |
| 300 | + |
| 301 | +--- |
| 302 | + |
| 303 | +### 📚 Knowledge Base |
| 304 | +- Featured article hero card |
| 305 | +- Category icons (Health, Nutrition, Training, First Aid) |
| 306 | +- Tabbed articles (All Topics, Health & Wellness, Behavioral Tips, Expert Guides) |
| 307 | +- Article tiles with read time, category, expert-verified badge |
| 308 | +- Search bar |
| 309 | +- Bookmark button |
| 310 | + |
| 311 | +--- |
| 312 | + |
| 313 | +### ⭐ Gear Reviews |
| 314 | +- Top-rated gear cards (product name, brand, rating, price, review count) |
| 315 | +- Category chips (Harnesses, Smart Toys, Feeders, Beds, GPS Trackers) |
| 316 | + |
| 317 | +--- |
| 318 | + |
| 319 | +### 🕐 Pet Social Timeline |
| 320 | +- Immersive parallax hero header with pet photo |
| 321 | +- Pet stats row (Memories, Milestones, Rank) |
| 322 | +- Chronological timeline with event types (photo, achievement, health, milestone) |
| 323 | +- Inline photo display for photo events |
| 324 | +- Reactions (likes, comments) per event |
| 325 | +- Add Memory FAB |
| 326 | + |
| 327 | +--- |
| 328 | + |
| 329 | +### 🌈 Pet Memorial |
| 330 | +- Immersive gradient background |
| 331 | +- Memorial profile (photo, name, years) |
| 332 | +- Quote card |
| 333 | +- Treasured moments photo gallery grid |
| 334 | +- Messages of love board |
| 335 | +- Add a Memory button |
| 336 | +- Share button |
| 337 | + |
| 338 | +--- |
| 339 | + |
| 340 | +### 📋 Medical Records |
| 341 | +- (Route registered: `/medical_records` → `PetHealthRecordScreen`) |
| 342 | + |
| 343 | +### 📤 Health Record Export |
| 344 | +- (Route registered: `/export_records` → `PetHealthRecordExportScreen`) |
| 345 | + |
| 346 | +--- |
| 347 | + |
| 348 | +### ⚙️ Settings |
| 349 | +- Light / Dark theme toggle (persisted via SharedPreferences) |
| 350 | +- Account info display |
| 351 | +- Notifications shortcut |
| 352 | +- Liked pets shortcut |
| 353 | +- Order history shortcut |
| 354 | +- Achievements & badges section (per-pet badge carousel, tap to view detail + share) |
| 355 | +- Privacy Policy, Terms of Service, Help & Support links |
| 356 | +- App version display |
| 357 | +- Sign out with confirmation |
| 358 | + |
| 359 | +--- |
| 360 | + |
| 361 | +### 🌐 Cross-Cutting Features |
| 362 | +- Material Design 3 with custom `PetfolioShadows` theme extension |
| 363 | +- Playfair Display (headings) + DM Sans (body) typography |
| 364 | +- Light and dark theme support |
| 365 | +- Responsive layout (max-width constraints for tablet/web) |
| 366 | +- Accessibility: semantic labels on nav bar, buttons, progress indicators |
| 367 | +- GoRouter with auth-aware redirects and deep link support (50+ routes) |
| 368 | +- Riverpod state management with `Notifier` pattern throughout |
| 369 | +- Bootstrap coordinator for parallel cold-start data hydration |
| 370 | +- App lifecycle sync (re-syncs data on resume, debounced 30s) |
| 371 | +- Supabase Realtime subscriptions (likes, comments, messages) |
| 372 | +- Image upload helper (Supabase Storage) |
| 373 | +- Local cache for care logs (SharedPreferences) |
| 374 | +- Marionette binding for UI automation testing |
0 commit comments