A comprehensive mobile application for attending FOSDEM (Free and Open Source Developers' European Meeting) conference, built with Flutter.
- Browse complete FOSDEM schedule with all events, tracks, and rooms
- Filter events by track, room, day, and duration
- Search events by title, speaker, or description
- View detailed event information including scraped content from event URLs
- Mark events as favorites with a single tap
- Build your personal conference journey with conflict detection
- Smart conflict detection that considers:
- Time overlaps between events
- Walking time between different buildings/rooms
- Intelligent buffer time (skipped if events are in the same room)
- Timeline visualization of your planned schedule
- Quick event discovery with Tinder-like swipe interface
- Campus map showing all FOSDEM buildings
- Click on buildings to see all events happening there
- Events sorted by favorites first, then by date/time
- GPS integration for location tracking
- Background notifications for upcoming events in your journey
- Configurable notification timing
- Works even when the app is closed
- Test notifications to verify system setup
- Swipe right to add events to favorites
- Swipe left to skip events
- Progress tracking showing seen/remaining events
- Randomized event presentation
- History tracking to avoid showing the same event twice
- Local database caching of all schedule data
- Scraped event content cached to avoid repeated fetching
- Works without internet connection after initial sync
This app is functional but built as a 100% vibe coding project!
This project was inspired by and started from mttcrsp/fosdem - an excellent iOS app for FOSDEM. This Flutter version was created as a proof-of-concept to explore rapid mobile development with AI assistance.
This project is a deliberate experiment in development velocity - testing how fast we can build complex features while maintaining functionality. Here's what that means:
Hypothesis: Can we achieve 10x development velocity by embracing AI-assisted coding, rapid iteration, and production QA testing?
Method:
- π€ AI-First Development: Using GitHub Copilot as the primary coding assistant
- π― Ship Fast, Fix Fast: Deploy working features immediately, refine based on real usage
- π§ͺ Production QA: Test by actually using the app, not just running test suites
- π Pure Vibes: Let intuition and rapid experimentation guide architecture
- π Continuous Iteration: Fix bugs as they're discovered, not before
- β‘ Development Speed: Full-featured conference app built in days, not months
- β Feature Completeness: Journey planning, conflict detection, swipe discovery, maps, notifications
- π― Real-World Ready: Actually usable at FOSDEM conference
- π Bug Discovery: Issues found and fixed through actual usage
- π Velocity Proof: Complex features delivered 5-10x faster than traditional development
β It Works:
- All features are functional and tested in real usage
- The app successfully helps plan and navigate FOSDEM
- Critical user flows work reliably
- π Code Quality: Works great, but not production-grade
- Code duplication exists (copy-paste over abstraction)
- Architecture patterns are pragmatic, not perfect
- Some technical debt accumulated for speed
- π§ͺ Testing: Manual QA over automated tests
- Features validated through actual usage
- Edge cases discovered and fixed as encountered
- π§ Maintenance: Rapid iteration over upfront planning
- Bugs fixed within hours of discovery
- Refactoring happens when needed, not proactively
π― The Point: This proves you can build complex, working software extremely fast by prioritizing velocity over perfection. The app delivers real value despite imperfect code. Perfect for:
- Rapid prototyping and MVPs
- Proof-of-concepts and experiments
- Time-constrained projects (like conference apps)
- Learning and exploring new features
Not suitable for:
- Mission-critical production systems
- Long-term enterprise maintenance
- Large team codebases
- Regulatory/compliance requirements
- π Fast evolution - new features ship continuously
The Verdict: Vibe coding works! By embracing speed and iteration over perfection, we've proven you can build sophisticated, working software incredibly fast. This is real development velocity.
This is an evolving experiment - contributions, bug reports, and feedback help us push the boundaries of how fast we can build!
- Flutter SDK 3.9.2 or higher
- Android Studio / Xcode for mobile development
- Android SDK (for Android builds)
-
Clone the repository
git clone https://github.com/yourusername/fosdem_flutter.git cd fosdem_flutter -
Install dependencies
flutter pub get
-
Generate database code
dart run build_runner build --delete-conflicting-outputs
-
Run the app
# For Android flutter run -d android # For iOS flutter run -d ios # For Web flutter run -d chrome
flutter build apk --releaseflutter build appbundle --releaseflutter build ios --releaseThe app requires the following permissions:
- Notifications: To send reminders for upcoming events
- Location: To show your position on the campus map
- Internet: To sync schedule data and scrape event content
The app follows Clean Architecture principles with BLoC (Business Logic Component) pattern:
lib/
βββ core/ # Core utilities and constants
βββ data/ # Data layer
β βββ datasources/ # API and local database
β βββ models/ # Data models
β βββ repositories/ # Repository implementations
βββ domain/ # Domain layer
β βββ entities/ # Business entities
β βββ repositories/ # Repository interfaces
β βββ usecases/ # Business logic
βββ features/ # Feature modules
β βββ event_discovery/ # Swipe-to-favorite feature
β βββ favorites/ # Favorites management
β βββ journey/ # Personal journey planning
β βββ map/ # Interactive campus map
β βββ schedule/ # Event schedule browsing
βββ presentation/ # UI layer
βββ bloc/ # State management
βββ screens/ # App screens
βββ widgets/ # Reusable widgets
- Flutter: Cross-platform UI framework
- Dart: Programming language
- flutter_bloc (9.1.1): BLoC pattern implementation
- equatable (2.0.8): Value equality for state management
- dio (5.9.0): HTTP client
- http (1.6.0): Alternative HTTP client
- pretty_dio_logger (1.4.0): Network logging
- drift (2.20.0): Type-safe SQL database
- sqlite3_flutter_libs (0.5.24): SQLite implementation
- path_provider (2.1.1): File system paths
- shared_preferences (2.5.4): Key-value storage
- flutter_map (8.2.2): Interactive map widget
- latlong2 (0.9.1): Geographic coordinates
- geolocator (14.0.2): GPS positioning
- flutter_local_notifications (19.5.0): Local notifications
- workmanager (0.9.0): Background task scheduling
- timezone (0.10.1): Timezone support for notifications
- flutter_slidable (4.0.3): Swipeable list items
- video_player (2.8.1): Video playback
- chewie (1.7.5): Video player UI
- intl (0.20.2): Internationalization
- url_launcher (6.3.2): Open URLs
- share_plus (12.0.1): Native sharing
- uuid (4.0.0): Unique identifiers
- xml (6.6.1): XML parsing for schedule data
- html (0.15.6): HTML scraping for event content
- dartz (0.10.1): Functional programming utilities
- rxdart (0.28.0): Reactive extensions
- go_router (17.0.1): Declarative routing
- get_it (9.2.0): Service locator
- The app will automatically sync the FOSDEM schedule
- Grant notification and location permissions when prompted
- Browse the schedule and mark events you're interested in
- Browse Events: Go to Schedule tab and explore events
- Add Favorites: Tap the heart icon on any event
- Plan Journey: Visit the Journey tab to see your timeline
- Resolve Conflicts: The app will highlight time conflicts and impossible transitions
- Add to Journey: Tap "Add to Journey" to confirm events
- Go to Favorites tab
- Tap "Discover Events" button
- Swipe right on events you like (adds to favorites)
- Swipe left to skip events
- Track your progress in the stats section
- Go to Map tab
- Tap on any building to see events there
- Events are sorted with your favorites at the top
- Tap an event to see full details
- Go to Settings tab
- Test notifications with the test button
- Schedule notifications will automatically alert you 15 minutes before each event in your journey
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- FOSDEM organizers for providing the conference schedule data
- Flutter team for the amazing framework
- All open-source contributors whose packages made this app possible
For questions, issues, or suggestions, please open an issue on GitHub.
FOSDEM (Free and Open Source Developers' European Meeting) is a free event for software developers to meet, share ideas and collaborate. It takes place annually in Brussels, Belgium.
- Website: https://fosdem.org
- Dates: Usually first weekend of February
- Location: ULB Campus Solbosch, Brussels
Note: This is an unofficial FOSDEM app created by the community. For official FOSDEM information, please visit https://fosdem.org