Skip to content

alancarlosh/Festum

Repository files navigation

Festum

Festum is a Flutter mobile application for event services discovery, booking, and provider operations. The project includes two connected experiences: a client flow for browsing and ordering services, and a provider flow for managing business information, services, products, reservations, and notifications.

Product Scope

  • Client catalog with category-based discovery
  • Service detail pages with gallery, pricing, and cart actions
  • Cart, order tracking, and order detail timeline
  • Provider dashboard with quick stats and featured services
  • Service and product management for providers
  • Reservation review, manual booking, and booking detail flows
  • Shared visual system for Android and iOS

Screenshots

Provider Experience

Provider home
Provider home
Provider notifications
Notifications
Provider profile
Profile
Business profile
Business profile
Provider services
Services
Provider products
Products
Create service
Create service
Edit service
Edit service
Provider reservations
Reservations
Booking detail
Booking detail

Client Experience

Client home
Client home
Client service detail
Service detail
Client cart
Cart
Client orders
Orders
Client order detail
Order detail

Architecture

  • lib/features/client: client-side views, repositories, state, and use cases
  • lib/features/provider: provider-side dashboard, services, products, and reservations
  • lib/core: routing, environment configuration, shared services, theme, and networking
  • lib/app: application shell and route registration

The codebase follows a feature-oriented structure with repositories and use cases separating UI from API integration.

Configuration

The application supports local and production API environments through API_BASE_URL.

Resolution order:

  1. API_BASE_URL from --dart-define
  2. Internal defaults by platform and build mode

Current defaults:

  • Android emulator: http://10.0.2.2:8000
  • iOS simulator: http://127.0.0.1:8000
  • Release builds: http://18.219.37.43

Examples:

flutter run --dart-define=API_BASE_URL=http://10.0.2.2:8000
flutter run --dart-define=API_BASE_URL=http://127.0.0.1:8000
flutter run --dart-define=API_BASE_URL=http://18.219.37.43

Xcode

The iOS project includes multiple build configurations:

  • Debug
  • Release
  • Profile
  • Staging

Use Runner for standard local development and Runner-Staging when you want the shared staging scheme.

Firebase

Android and iOS Firebase configuration files are expected in:

  • android/app/google-services.json
  • ios/Runner/GoogleService-Info.plist

These files are intentionally kept out of version control. Each developer must add their own local Firebase configuration files before running notification flows on device or simulator.

Push notifications are fully prepared on Android. For real iOS push notifications on a physical device, Apple Developer Program access and APNs configuration are still required.

Run

flutter pub get
flutter run

Validation

flutter analyze

Platform Scope

This repository is currently focused on mobile delivery:

  • Android
  • iOS

Notes

  • The local development flow is optimized for emulator and simulator testing.
  • The project already integrates real API flows for client and provider modules.
  • Image handling supports backend variants with graceful fallback for older payloads.

About

A Flutter mobile app for browsing, booking, and tracking event services, with organized layers for UI, logic, and data management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages