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.
- 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
![]() Provider home |
![]() Notifications |
![]() Profile |
![]() Business profile |
![]() Services |
![]() Products |
![]() Create service |
![]() Edit service |
![]() Reservations |
![]() Booking detail |
![]() Client home |
![]() Service detail |
![]() Cart |
![]() Orders |
![]() Order detail |
lib/features/client: client-side views, repositories, state, and use caseslib/features/provider: provider-side dashboard, services, products, and reservationslib/core: routing, environment configuration, shared services, theme, and networkinglib/app: application shell and route registration
The codebase follows a feature-oriented structure with repositories and use cases separating UI from API integration.
The application supports local and production API environments through API_BASE_URL.
Resolution order:
API_BASE_URLfrom--dart-define- 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.43The iOS project includes multiple build configurations:
DebugReleaseProfileStaging
Use Runner for standard local development and Runner-Staging when you want the shared staging scheme.
Android and iOS Firebase configuration files are expected in:
android/app/google-services.jsonios/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.
flutter pub get
flutter runflutter analyzeThis repository is currently focused on mobile delivery:
- Android
- iOS
- 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.














