- Untrack .claude/launch.json (Claude Code config) - Add .claude/, .mcp.json, CLAUDE.md, and AI-generated CSVs to .gitignore - Add _notes/ vault (architecture, API, tasks, bugs, infra docs) - Add .obsidian/ plugin/vault config (workspace state excluded) - Sync CHANGELOG.md
11 KiB
11 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[1.6.1] - 2026-04-04
Phase 4 — animation polish and final feature gaps. Flutter app reaches full feature parity with Consumer Web App v1.4.9.
Added
- BouncingLoader widget (
lib/widgets/bouncing_loader.dart): 3-dot bouncing animation with staggered 200 ms delays usingCurves.bounceOut. ReplacesCircularProgressIndicatorin home, contribute, and review screens. Acceptscolor,dotSize, andspacingparameters. - DiceBear Notionists avatars on review cards (REV-001):
CachedNetworkImagefetchesapi.dicebear.com/9.x/notionists/svg?seed={username}. Falls back to coloured initial letterCircleAvataron error or while loading. - Server-side event search (HOME-007): Search modal now sends
qparam toEventsByPincodeView; client-side filter stays for instantonChangedfeedback while server results load on submit. Cache is bypassed for search queries. Django backend updated withQ(title__icontains=q) | Q(description__icontains=q)OR filter. flutter_staggered_animations: ^1.1.1added to pubspec.
Changed
- Review list stagger animation (REV-003):
AnimationLimiter+AnimationConfiguration.toStaggeredListwraps review cards with 375 ms slide-up + fade-in per item. - Review submit success spring animation (REV-004): Checkmark icon now animates with
ScaleTransitiondriven byCurves.elasticOut(600 ms) instead of a static icon swap. - Hero transitions on event cards (UX-005):
Hero(tag: 'event-hero-{id}')wraps event images in home screen and matching destination in learn more screen — enabling shared-element transitions. - FadeTransition on learn more screen (UX-005): Screen body fades in with
Curves.easeIn(350 ms) after event data loads. - AnimatedList stagger on leaderboard (UX-005):
SliverListentries animate withAnimationConfiguration.staggeredList— 375 ms slide-up + fade-in per row.
[1.6.0] - 2026-04-04
Phase 3 — 26 medium-priority gaps. Profile editing, contributor profiles, share cards, booking promo codes, and UX system components.
Added
- Eventify ID badge (AUTH-003): Verified badge displayed on profile and contributor cards for accounts with confirmed identity.
- DiceBear TierAvatarRing (
lib/widgets/tier_avatar_ring.dart): Tier-coloured ring around profile avatars using DiceBear seed — Bronze/Silver/Gold/Platinum/Diamond colours. - Profile photo upload to server (AUTH-006 / PROF-002):
PATCH /api/user/update-profile/multipart endpoint; photo picker + crop flow integrated. - District picker (PROF-004): 14 Kerala districts selectable from a bottom sheet; stored against user profile.
- 183-day profile cooldown lock (AUTH-005): Username and display name locked for 183 days after last change; countdown shown in edit form.
- Kerala pincodes JSON (
assets/data/kerala_pincodes.json) (LOC-003): Full offline pincode dataset covering all 14 districts; powers location-aware event discovery without API round trips. - Promo code input on booking (BOOK-003):
POST /bookings/apply-promo/endpoint; inline validation with success/error state in booking bar. - Contributor profile screen (
lib/screens/contributor_profile_screen.dart) (CTR-004/005): Public view of any contributor's stats, tier, events submitted, and achievements. - Share rank card (
lib/features/share/share_rank_card.dart) (SHARE-001/002): Generates a shareable tier/EP card image;share_plusused for native share sheet. - Share status button on contributor dashboard (CTR-003):
OutlinedButton.iconwithShare.share()near tier/EP display. - GlassCard widget (
lib/widgets/glass_card.dart) (UX-003): Reusable frosted-glass surface used across gamification and profile screens. - EventifyBottomSheet (
lib/widgets/eventify_bottom_sheet.dart) (UX-004): Standardised bottom sheet with drag handle, rounded corners, and safe-area inset. - Featured events carousel (HOME-004): Auto-scrolling hero carousel for featured/sponsored events on home screen.
- Event image gallery (EVT-001): Full-screen
PageViewcarousel inside learn more screen with dot indicator.
Changed
- Real gamification data (GAM-003/004/006): EP/RP transaction history, tier progression, and leaderboard all wired to live Node.js API — mock data removed.
- Leaderboard card district display (LDR-003): District badge shown per rank row; district filter pill row added above leaderboard.
- Achievement badge display + unlock animation (ACH-002/003): Badges rendered from API; confetti-style animation plays on first unlock.
- Review responses (REV-002): Organiser reply thread displayed below each review card.
- Profile bio and social links (PROF-001): Edit form includes bio textarea and links for Instagram, Twitter, LinkedIn.
[1.5.1] - 2026-04-04
Phase 2 — 11 high-priority gaps. Authentication hardening, location services, real gamification data hookup, skeleton loading, and booking flow fixes.
Added
- Email OTP verification (AUTH-004): 6-digit OTP sent on registration; verification screen blocks app access until confirmed.
- Password reset flow (AUTH-002): Forgot-password → OTP → new password screens; Django
POST /accounts/password-reset/endpoint integrated. - Location permission + haversine distance sorting (LOC-001/002):
geolocatorrequests permission at startup; events sorted by straight-line distance from user's GPS coordinate. - Skeleton loading with shimmer (UX-001):
shimmer: ^3.0.0added; event feed, leaderboard, and profile screens show shimmer placeholders while data loads. - Contributor stats real API (CTR-001): EP/RP balance and tier fetched from Node.js gamification endpoint on dashboard load.
- Achievement progress tracking (ACH-001): Progress bars and completion state fetched from API; local mock removed.
- Profile stats row (PROF-003): Likes / Posts / Views counts fetched from user profile API and displayed in profile header.
Changed
- Search modal with server pincode detection (HOME-001/002/003): Search bottom sheet auto-detects user pincode; category filter chips filter from API results.
- Real tier and EP display (GAM-002/005): Contributor dashboard shows live tier and EP from Node.js API; tier badge in profile header updated to match.
- District filter on leaderboard (LDR-002): Leaderboard district pills populated from API; selecting filters rank table in real time.
- Booking bar fixes (EVT-003/BOOK-004): Fixed ticket-count stepper; booking confirmation screen correctly shows booking reference.
[1.5.0] - 2026-04-04
Phase 1 — critical gaps. Live backend integration replacing all mock/stub data, payment checkout, and OAuth.
Added
- Gamification API integration: EP, RP, leaderboard, and achievements wired to live Node.js endpoints at
app.eventifyplus.com/api/v1/— all mockGamificationServicedata replaced. - Razorpay checkout (BOOK-001): Native Razorpay SDK integrated;
POST /bookings/create/→ order creation → Razorpay payment sheet →POST /bookings/verify/webhook. - Google OAuth login (AUTH-001):
google_sign_inflow; tokens exchanged with DjangoPOST /accounts/google-auth/endpoint. - Notification panel (NOTIF-002/003/004):
DraggableScrollableSheetnotification drawer with 4 colour-coded notification types (booking, event, system, promo); mark-individual-read and mark-all-read actions.
[1.4.0] - 2026-03-18
Added
- Desktop Contribute Dashboard: Full desktop layout for the Contribute screen, matching the web version at eventifyplus.com/contribute
- "Contributor Dashboard" title with 3-tab navigation (Contribute, Leaderboard, Achievements)
- Two-column submit event form — Event Title + Category side-by-side, Date + Location side-by-side
- Contributor Level gradient card with 5-tier milestone progress bar (Bronze → Silver → Gold → Platinum → Diamond)
- Sub-navigation row: My Events / Submit Event / Reward Shop
- Desktop Leaderboard with All Time / This Month toggle, district pills, podium, and full rank table
- Desktop Achievements with 3-column badge grid, progress bars, and lock icons
- Inline Reward Shop with RP balance badge and shop item cards
- Gamification Feature Module (
lib/features/gamification/):GamificationProvider— ChangeNotifier-based state managementGamificationService— mock data for EP, RP, leaderboard entries, achievements, and shop items- Models:
LeaderboardUser,Achievement,ShopItem,ContributorStats
- Bottom Sheet Date Filters: Home screen event-category filter chips now open in a modal bottom sheet on mobile
- Web runner script (
run_web.sh) for local Flutter web development server
Changed
- Profile Screen: Completely redesigned to match the web app layout — gradient header card, avatar, stats row (Likes / Posts / Views), and tabbed content
- Profile Card Animations: Smooth entrance animations matching the React web component
- Contribute Screen (Mobile): Full 4-tab rebuild — Contribute, Leaderboard, Achievements, Shop — with animated glass-glider tab bar indicator
- Login Screen: Updated UI design aligned with the web version
- Event Detail Screen: Layout updates and improved API data binding
- Theme: Refreshed dark/light mode colour palette and surface colours
- API Client: Updated base URL and endpoint paths in
lib/core/api/api_endpoints.dart - Fonts: Integrated full Gilroy font family (Light, Regular, Medium, SemiBold, Bold, ExtraBold — with italic variants)
- Responsive Layout: Improved breakpoint handling; desktop threshold set at 820 px
Fixed
- Profile card pixel-perfect alignment with the web version
- Calendar screen date-range filter and location search integration
- District dropdown naming conflict in leaderboard (
_lbDistrictsvs._districts) - Green points colour (#16A34A) on desktop leaderboard matching web (was blue #0F45CF on mobile)
[1.3.0] - 2026-02-xx
Added
- Leaderboard tab and Achievements tab added to the Contribute screen
- Bouncy sliding glass-glider animation for Contribute tab bar
[1.2.0] - 2026-01-xx
Added
- Responsive dual-layout system with 820 px breakpoint
- Date filtering on the Home screen event feed
- Location search integration
- Calendar screen bug fixes and improvements
[1.1.0] - 2025-12-xx
Added
- Initial screens: Login, Home, Events, Profile, Calendar, Search, Booking
- Desktop variants:
DesktopLoginScreen,HomeDesktopScreen - Flutter launcher icons and native splash screen
- Gilroy font integration (initial)
shared_preferencessession caching