Boardbit is a Flutter application designed for board game enthusiasts to log and track their game plays among different players, capturing detailed score breakdowns for each participant.
The main goal of the app is to provide an easy and comprehensive way to record who played, when they played, and how each player scored, creating a rich history of your board gaming sessions.
Additionally, it showcases a list of the top 20 hottest board games from BoardGameGeek for users to explore.
This project is a technical sample aimed at demonstrating commonly used Flutter solutions:
- Riverpod State Management: Utilizes the latest version of Riverpod with code generation for efficient state management.
- Firebase Backend Integration: Implements Firebase services with anonymous authentication.
- Simplified CLEAN Architecture: Adopts a feature-based folder structure with separation between domain and presentation layers.
- BGG XML API: Fetches board game data using the BoardGameGeek XML API and includes an XML to JSON parser for data interpretation.
- User Onboarding: A short onboarding where the user introduces their name.
- Hot Games List: View a list of the top 20 hottest board games from BoardGameGeek.
- Add New Play: Tap the central tab bar button to add a new game play.
- Select Board Game: Choose the board game that was played.
- Select Date: Pick the date of the game session.
- Manage Participants: Select saved players or add new ones as participants.
- Score Entry: Add scores for each participant with detailed breakdowns to capture different game scoring objectives.
- Play History: View a list of saved plays in the play list tab.
- Flutter SDK: Install Flutter
- FVM (Flutter Version Management): Install FVM
- Firebase CLI: Install Firebase CLI
-
Clone the Repository
git clone https://github.com/yourusername/your-repo-name.git cd your-repo-name -
Install FVM
Follow the instructions to install FVM:
brew tap leoafarias/fvm brew install fvm
Note: Adjust the installation command based on your OS.
-
Install the Flutter Version via FVM
fvm install fvm use
-
Install Dependencies
fvm flutter pub get
-
Set Up Firebase
The project requires Firebase to run successfully. Use the FlutterFire CLI tool to set up Firebase:
-
Install FlutterFire CLI:
dart pub global activate flutterfire_cli
-
Configure Firebase for both development and production environments by following the Firebase Flutter setup guide.
-
The project uses two Firebase configuration files:
firebase_options_dev.dartfor developmentfirebase_options_prod.dartfor production
-
-
Run the App
Run the app in the development environment:
fvm flutter run -t "lib/main_dev.dart"Note: The current environment separation solution is specific to this sample app. In a production app, the correct approach would be to have separate bundle IDs and configured flavors. This was outside the scope of this sample.
