Official website for Flutter Conf Latam - The premier Flutter conference in Latin America.
Flutter Conf Latam Web is the public-facing website for the conference, built with Flutter Web. It provides information about speakers, schedule, venue, sponsors, and ticket sales.
| Feature | Description |
|---|---|
| Home | Hero section, event features, novelties, and collaborations |
| Speakers | Browse speakers with detailed profiles and social links |
| Schedule | Interactive schedule with sessions, workshops, and activities |
| Venue | Event location with maps, amenities, and travel tips |
| Pricing | Ticket tiers and pricing information |
| Gallery | Photo gallery from previous events |
| Organizers | Meet the team and allied communities |
| Contact | Contact form and social media links |
| Privacy & Terms | Legal documents (Privacy Policy, Terms of Service) |
Before getting started, make sure you have the following installed:
- Flutter SDK: 3.41.0 or higher
- Dart SDK: >=3.11.0 <4.0.0
- Firebase CLI: For deployment and Firebase configuration
npm install -g firebase-tools
- Google Chrome: To run the application in development mode
lib/
├── core/
│ ├── dependencies.dart # Signal initialization
│ ├── responsive/ # Responsive utilities
│ └── widgets/ # Reusable UI components
│ ├── card/ # Card components
│ ├── container/ # Layout containers
│ ├── image/ # Image widgets
│ ├── section/ # Page sections
│ └── text/ # Text components
├── features/ # Feature modules
│ ├── contact/ # Contact page
│ ├── gallery/ # Photo gallery
│ ├── home/ # Landing page
│ ├── organizers/ # Organizers & communities
│ ├── pricing/ # Ticket pricing
│ ├── privacy_terms/ # Legal pages
│ ├── schedule/ # Event schedule
│ ├── speakers/ # Speakers listing & details
│ └── venue/ # Venue information
├── l10n/ # Localization
│ ├── arb/ # Translation files (en, es)
│ └── gen/ # Generated localization
└── main.dart # Entry point
git clone <repository-url>
cd flutterconfwebflutter pub getThis project uses Firebase services provided by flutter_conf_backend:
- Firebase Authentication
- Data Connect (SQL Database)
- Firebase Storage
- Firebase Hosting
Note: Firebase data sources and initialization are handled by the
flutter_conf_backendpackage. This project only needs to generate thefirebase_options.dartfile.
-
Create a project in Firebase Console (or use an existing one)
-
Login to Firebase CLI:
firebase login
-
Configure FlutterFire to generate
firebase_options.dart:# Install FlutterFire CLI if you don't have it dart pub global activate flutterfire_cli # Configure Firebase for the project flutterfire configure \ --project=<PROJECT_ID> \ --out=lib/firebase_options.dart \ --platforms=web
The project uses a keys.json file to store configuration variables. This file is required for building the
application.
Create a keys.json file in the root directory with the following structure:
{
"COUNTRY_PAGE_URL": "https://example.com/country-page",
"TICKET_PAGE_URL": "https://example.com/tickets",
"CFP_FORM_URL": "https://example.com/call-for-papers",
"APP_STORE_URL": "https://apps.apple.com/app/your-app-id",
"GOOGLE_APP_URL": "https://play.google.com/store/apps/details?id=your.package.name",
"VENUE_MAP_URL": "https://maps.google.com/your-venue-location",
"CONTACT_EMAIL": "contact@example.com",
"FCL_PRIVACY_POLICY_URL": "https://example.com/privacy-policy"
}Important: Replace all example values with your actual URLs and configuration.
Note: This file should not be committed to version control if it contains sensitive information. Add it to
.gitignore if necessary.
flutter gen-l10nflutter run -d chrome --dart-define-from-file=keys.jsonFor local development with mock data, use Firebase Emulators:
-
Navigate to the
flutter_conf_backenddirectory and start emulators:cd ../flutter_conf_backend firebase emulators:start -
Run the web app (it will automatically connect to emulators in debug mode):
flutter run -d chrome --dart-define-from-file=keys.json
Note: The app automatically uses Firebase emulators when running in debug mode (see
lib/bootstrap.dart:37). Emulator configuration is handled byflutter_conf_backendpackage.
flutter build web --release --dart-define-from-file=keys.jsonCompiled files will be generated in build/web/
Hosting configuration is located in firebase.json and includes:
- Cache control for JavaScript files
- Rewrites for SPA routing
- Public directory:
build/web
# Build the application
flutter build web --release --no-tree-shake-icons --dart-define-from-file=keys.json
# Deploy to Firebase Hosting
firebase deploy --project <PROJECT_ID> --only hostingThis project follows Clean Architecture principles with Signals for state management:
┌─────────────────────────────────────────────────────────────────┐
│ flutter_conf_latam (web) │
│ (Presentation Layer) │
│ │
│ • Pages and Widgets │
│ • Signals State Management │
│ • Routing with go_router │
│ • Responsive Design │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ flutter_conf_backend │
│ (Firebase Data Source Implementations) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ flutter_conf_core │
│ (Domain Layer - Interfaces, Entities, Repositories) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ flutter_conf_common │
│ (Result type, Exceptions, Utilities) │
└─────────────────────────────────────────────────────────────────┘
| Package | Purpose |
|---|---|
signals |
Reactive state management |
go_router |
Navigation and routing |
flutter_conf_core |
Domain layer and repositories |
flutter_conf_backend |
Firebase implementations |
flutter_conf_common |
Shared utilities |
cached_network_image |
Image caching |
flutter_animate |
Animations |
google_fonts |
Google Fonts integration |
rive |
Interactive animations |
shared_preferences |
Local storage for preferences |
The project supports multiple languages:
- English (en)
- Spanish (es)
Translation files are located at:
lib/l10n/arb/intl_en.arblib/l10n/arb/intl_es.arb
- Edit the
.arbfiles inlib/l10n/arb/ - Regenerate localization files:
flutter gen-l10n
| Package | Description |
|---|---|
flutter_conf_common |
Core utilities, Result type, exceptions |
flutter_conf_core |
Domain layer - Interfaces, entities, repositories |
flutter_conf_backend |
Firebase implementations |
Verify that Flutter is installed correctly and in your PATH:
flutter doctorRegenerate localization files:
flutter gen-l10nMake sure you have executed:
flutterfire configureEnsure you have created the keys.json file in the root directory as described in the configuration section.
- Create a branch from
main - Make your changes
- Run analysis:
flutter analyze - Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.