Sicherhaven e9752c3d61 feat: Phase 3 — 26 medium-priority gaps implemented
P3-A/K  Profile: Eventify ID glassmorphic badge (tap-to-copy), DiceBear
        Notionists avatar via TierAvatarRing, district picker (14 pills)
        with 183-day cooldown lock, multipart photo upload to server
P3-B    Home: Top Events converted to PageView scroll-snap
        (viewportFraction 0.9 + PageScrollPhysics)
P3-C    Event detail: contributor widget (tier ring + name + navigation),
        related events horizontal row; added getEventsByCategory() to
        EventsService; added contributorId/Name/Tier fields to EventModel
P3-D    Kerala pincodes: 463-entry JSON (all 14 districts), registered as
        asset, async-loaded in SearchScreen replacing hardcoded 32 cities
P3-E    Checkout: promo code field + Apply/Remove button in Step 2,
        discountAmount subtracted from total, applyPromo()/resetPromo()
        methods in CheckoutProvider
P3-F/G  Gamification: reward cycle countdown + EP→RP progress bar (blue→
        amber) in contribute + profile screens; TierAvatarRing in podium
        and all leaderboard rows; GlassCard current-user stats card at
        top of leaderboard tab
P3-H    New ContributorProfileScreen: tier ring, stats, submission grid
        with status chips; getDashboardForUser() in GamificationService;
        wired from leaderboard row taps
P3-I    Achievements: 11 default badges (up from 6), 6 new icon map
        entries; progress % labels already confirmed present
P3-J    Reviews: CustomPainter circular arc rating ring (amber, 84px)
        replaces large rating number in ReviewSummary
P3-L    Share rank card: RepaintBoundary → PNG capture → Share.shareXFiles;
        share button wired in profile header and leaderboard tab
P3-M    SafeArea audit: home bottom nav, contribute/achievements scroll
        padding, profile CustomScrollView top inset

New files: tier_avatar_ring.dart, glass_card.dart,
  eventify_bottom_sheet.dart, contributor_profile_screen.dart,
  share_rank_card.dart, assets/data/kerala_pincodes.json
New dep:   path_provider ^2.1.0
2026-04-04 17:17:36 +05:30
2026-03-11 20:30:06 +05:30
2026-03-11 20:30:06 +05:30
2026-01-31 15:23:18 +05:30
2026-01-31 15:23:18 +05:30
2026-03-11 20:30:06 +05:30
2026-01-31 15:23:18 +05:30
2026-03-11 20:30:06 +05:30

███████╗██╗   ██╗███████╗███╗   ██╗████████╗██╗███████╗██╗   ██╗
██╔════╝██║   ██║██╔════╝████╗  ██║╚══██╔══╝██║██╔════╝╚██╗ ██╔╝
█████╗  ██║   ██║█████╗  ██╔██╗ ██║   ██║   ██║█████╗   ╚████╔╝ 
██╔══╝  ╚██╗ ██╔╝██╔══╝  ██║╚██╗██║   ██║   ██║██╔══╝    ╚██╔╝  
███████╗ ╚████╔╝ ███████╗██║ ╚████║   ██║   ██║██║        ██║   
╚══════╝  ╚═══╝  ╚══════╝╚═╝  ╚═══╝   ╚═╝   ╚═╝╚═╝        ╚═╝   
                                                FRONTEND APP

🎟️ Eventify Frontend

A beautifully crafted, fully responsive Flutter application for event management, discovery, and attendance.

Flutter Dart Platform Version


🌟 Overview

Eventify Frontend is the official Flutter mobile and desktop application counterpart of the Eventify Dashboard (React). Built with performance and elegance in mind, it delivers a dynamic native experience offering the same powerful features as its web counterpart.

Whether you're an attendee looking for the next big conference or an administrator managing your personal agenda, Eventify has you covered. The application seamlessly adapts its UI between mobile and desktop form-factors.

Key Features & Capabilities

  • 📱 Fully Responsive Dual-Layouts: Distinct, optimized UI layouts for both Mobile and Desktop screens (DesktopLoginScreen vs LoginScreen, HomeDesktopScreen vs HomeScreen) utilizing a strict breakpoint system.
  • 🌗 Native Theming & Dark Mode: Integrated ThemeManager supporting real-time reactive toggles between fully customized Light and Dark modes.
  • 📅 Interactive Calendars & Booking: Effortlessly browse and manage your events and tickets using integrated calendar views (table_calendar).
  • 📍 Location Services: Precise event mapping and real-time location detection powered by cutting-edge geo-packages (geocoding & geolocator).
  • 📸 Media Integration: Instantly share moments or update your profile via secure native image picking (image_picker).
  • 💾 Fast & Reliable Local Storage: Lightning-fast offline-ready credential and preference caching using shared_preferences.
  • 🎨 Sleek UI/UX: A pixel-perfect interface translated beautifully into a responsive application, complete with deep profile management, customized settings, and ticket overview screens.
  • 🚀 Polished Details: Brand-aligned custom launcher icons (flutter_launcher_icons) and native splash screens (flutter_native_splash) built right in.

🛠️ Architecture & Tech Stack

This project strictly adheres to a modularized folder structure designed for scalability:

  • Core Framework: Flutter (SDK: ^3.0.0 target)
  • Local Data Caching: shared_preferences
  • Media Management: image_picker
  • Date Management: table_calendar
  • Location & Analytics: geolocator & geocoding

🏗️ Directory Organization

lib/
├── core/
│   ├── api/              # API interceptors and client setup
│   ├── storage/          # Local caching implementations
│   ├── constants.dart    # Environment constants and static keys
│   ├── theme_manager.dart# Dark/Light mode state management
│   └── app_decoration.dart
├── features/
│   ├── auth/             # Authentication BLOC/Services
│   └── events/           # Core event manipulation logic
├── screens/
│   ├── booking_screen.dart       # Event booking flow
│   ├── calendar_screen.dart      # Interactive calendar tools
│   ├── home_screen.dart          # Mobile Home Feed
│   ├── home_desktop_screen.dart  # Desktop Home Dashboard
│   ├── login_screen.dart         # Mobile Login
│   ├── desktop_login_screen.dart # Desktop Login
│   ├── profile_screen.dart       # User user settings
│   ├── search_screen.dart        # Event lookups
│   ├── responsive_layout.dart    # Core Layout Builder
│   └── ...
└── main.dart             # Application Entry Point & Route Builder

🚀 Getting Started

Follow these steps to get your development environment set up and running locally.

Prerequisites

  • Flutter SDK installed on your machine.
  • An IDE with Flutter support (VS Code, Android Studio, IntelliJ).
  • An active iOS Simulator, Android Emulator, or a Web/Desktop target enabled.

Installation

  1. Clone the repository

    git clone https://code.bshtech.net/Sicherhaven/Eventify-frontend.git
    
  2. Navigate to the directory

    cd Eventify-frontend
    
  3. Install dependencies

    flutter pub get
    
  4. Regenerate Assets (Optional but recommended) If you have updated icons or splash screens, run:

    flutter pub run flutter_launcher_icons:main
    flutter pub run flutter_native_splash:create
    
  5. Run the app

    flutter run
    

🔐 Authentication & State

The app uses an initialization check in main.dart that intercepts the launch view to determine if the user has an existing cached session (email stored via SharedPreferences).

  • If authenticated: Safely navigates the user to the HomeScreen / HomeDesktopScreen.
  • If unauthenticated: Routes the user to the LoginScreen / DesktopLoginScreen.

📋 Changelog

See CHANGELOG.md for a full history of changes.

Latest (v1.4.0 — Preview)

  • Desktop Contribute Dashboard rebuilt to match the web version (Contributor Dashboard, 3-tab nav, two-column form, leaderboard, achievements, reward shop)
  • Gamification module — EP, RP, leaderboard, achievements, shop with Provider state management
  • Profile screen redesigned to match the web app layout with animations
  • Enhanced animations, responsive improvements, Gilroy font suite, and API updates

Built with ❤️ by the Eventify Team
Description
No description provided
Readme 8.5 MiB
Languages
Dart 93.3%
C++ 3.1%
CMake 2.4%
HTML 0.4%
Swift 0.3%
Other 0.5%