Skip to content

Repository files navigation

🎉 Festrix — Premium Campus Event & Ticketing Platform

Your Fest, Your Vibe • Plans Made Easy, Memories Made Epic.

Festrix is an event discovery, competition management, and digital ticketing Flutter mobile application backed by Cloud Firestore & Firebase Authentication. Built with a sleek modern design system, glassmorphism, animated curved navigation, and dynamic digital QR entry passes.


✨ Key Features & Capabilities

🌟 1. Explore & Live Event Discovery

  • Personalized Header: Dynamic greeting with campus venue switcher (AIKTC Campus, IIT Bombay, etc.).
  • Real-Time Live Search: Instant debounced search filtering by event title, tags, description, and venue location.
  • Dynamic Category Filter: Filter across curated categories (Music, Dance, Algorithm / Hackathons, Sports, Literature / Debate, Art & Craft, Standup Comedy).
  • Featured / Trending Carousel: VIP festival banners with countdown badges, category tags, and one-tap bookmarking.
  • Event Feed Cards: High-res festival posters, dynamic pricing, date & time badges, available seats tracker, and verified organizer tags.

🎟️ 2. Interactive Event Details & Ticket Checkout

  • Hero Image Parallax: Immersive sliver app bar with hero animations and wishlist heart toggle.
  • Interactive Ticket Selector: Custom quantity counter (+ / -) with dynamic subtotal and tax calculation.
  • Promo Code Engine: Real-time discount codes (e.g. FEST2026 for 20% off, STUDENT for 10% off).
  • Venue & Calendar Actions: One-tap "Add to Calendar" and "Get Venue Directions".
  • Digital Pass Generation: Instant booking confirmation with a dedicated Digital QR Pass modal.

🎫 3. Digital Boarding-Pass Tickets (My Passes)

  • Segmented Tabs: Switch seamlessly between Active Passes, Past Events, and Saved / Wishlist.
  • Futuristic Boarding-Pass Cards: Perforated ticket divider, entry status badge (Confirmed / Checked In), attendee name, seat tier, and barcode.
  • Fullscreen QR Code Modal: High-contrast scannable QR code for entry gate scanner admission.
  • Pass Management: Ability to copy pass ID to clipboard or cancel booking with safety prompt.

👤 4. User Profile & Preferences

  • Profile Header: Avatar, full name, email, campus badge, and contact number.
  • Stats Dashboard: Live counter of Saved Events, Campus Pass Tier, and Festrix Rank.
  • Quick Settings: Edit profile details modal, Admin Portal quick access, About Festrix dialog, and secure Sign Out.

🛡️ 5. Admin & Organizer Command Suite

  • Passcode Protection: Master passcode gate (admin123) for organizers.
  • Live Analytics Dashboard:
    • Total Active Events
    • Total Passes Sold
    • Total Revenue Generated (₹)
    • Gate Check-In Counter (x / y Admitted)
  • Event Creator & Publisher: Full form with image picker, date & time pickers, category dropdown, capacity, tags, and "Feature on Carousel" toggle.
  • Pass Verification & Gate Scanner: View all issued passes, live search attendee or ticket ID, and toggle "Admit / Checked In" status with one tap.

🔒 6. Robust Authentication & Offline Fallback

  • Google Sign-In: Integrated with Firebase Auth and Google Sign-In.
  • Email & Password Authentication: Dual register & sign-in forms with form validation.
  • Instant Demo Mode: One-tap demo access (Skip Login) for instant testing without Firebase configuration.
  • Automatic Fallback Caching: Works seamlessly offline with rich mock data when Firestore is unreachable.

🏗️ Architecture & Project Structure

lib/
├── admin/
│   ├── admin_dashboard.dart     # Organizer analytics & event management hub
│   ├── admin_login.dart         # Master passcode verification screen
│   ├── database.dart            # Unified database re-export
│   ├── ticket_event.dart        # Gate check-in & pass admission management
│   └── upload_events.dart       # New event publisher with media & date pickers
├── models/
│   ├── booking_model.dart       # Strongly-typed ticket pass & booking entity
│   ├── category_model.dart      # Category metadata, gradients, and icons
│   ├── event_model.dart         # Strongly-typed event entity with parsers
│   └── user_model.dart          # User profile entity with saved events
├── pages/
│   ├── bottomnav.dart           # Curved navigation bar with 4 core tabs
│   ├── categories_event.dart    # Category-specific explorer with sorting
│   ├── detail_page.dart         # Event overview, ticket selector & booking
│   ├── home.dart                # Main explore feed, trending carousel & search
│   ├── profile.dart             # User profile, statistics & settings
│   ├── registration.dart        # My Passes (Active, Past, Saved)
│   └── signup.dart              # Onboarding, Google & Email auth, Demo mode
├── services/
│   ├── auth.dart                # AuthService with Google, Email & Demo login
│   ├── database.dart            # Central DatabaseService with streams & cache
│   ├── mock_data_service.dart   # Campus event pre-seeded fallback data
│   └── shared_pref.dart         # Type-safe local preferences & bookmark storage
├── theme/
│   └── app_theme.dart           # Electric Purple / Magenta Material 3 design
├── firebase_options.dart        # Multi-platform DefaultFirebaseOptions
└── main.dart                    # App bootstrap & named route registry

🚀 Getting Started

Prerequisites

  • Flutter SDK (Dart >=3.10.0 <4.0.0)
  • Android Studio / VS Code with Flutter extension

Installation

  1. Clone the repository:

    git clone https://github.com/Arfaa26/festrix.git
    cd festrix
  2. Install dependencies:

    flutter pub get
  3. Run automated quality checks & unit tests:

    flutter test
    flutter analyze
  4. Launch the application:

    flutter run

🧪 Testing

The codebase includes automated unit and model tests covering CategoryModel, EventModel, BookingModel, and MockDataService.

flutter test

👩‍💻 Author & Credits

  • Author: Arfa Altaf
  • Built with: Flutter, Firebase, Dart, Curved Navigation Bar

About

Cross-platform Flutter event discovery and ticketing app powered by Firebase.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages