BowlerKit

FAQ

8/20/2026

Frequently asked questions about the BowlerKit Flutter edition.

General Questions

What are the default admin credentials?

By default, the database seeder creates an admin account with the following credentials:

  • Email: admin@example.com
  • Password: password

You can access the admin panel at http://localhost:8000/admin.

How do I change the backend database?

The boilerplate uses SQLite by default. To use MySQL, PostgreSQL, or MariaDB:

  1. Update the DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, and DB_PASSWORD in your admin-panel/.env.
  2. Run php artisan migrate --seed.
  3. Update the database connection in api-backend/.env to point to the same database.

Why is code generation (build_runner) failing?

If you're seeing conflicts or errors during code generation, try a clean build:

dart run build_runner clean
dart run build_runner build --delete-conflicting-outputs

CocoaPods issues on macOS?

If you're having trouble with iOS builds, try resetting your pods:

cd ios
rm -rf Pods
rm Podfile.lock
pod install
cd ..

How do I reset everything?

If you want to start from scratch with the database:

cd admin-panel
php artisan migrate:fresh --seed

1. Setup & Configuration

How do I connect my Flutter app to the local backend?

Mobile applications cannot use localhost to access a backend running on your computer.

  • Android Emulator: Use the IP http://10.0.2.2:8000 for the admin-panel or http://10.0.2.2:8080 for the api-backend.
  • iOS Simulator: You can use http://localhost:8000 (admin-panel) or http://localhost:8080 (api-backend).
  • Physical Device: Use your computer's local IP address (e.g., http://192.168.1.5:8000). Make sure you have updated the baseURL in the lib/constants/api_endpoints.dart file.

How do I setup Google OAuth on Android and iOS?

Use the Google Cloud Console to create Client IDs for each platform. Update the google_services.json (Android) and GoogleService-Info.plist (iOS) files in your Flutter project. Details are in Authentication Features.


2. Customization & Branding

How do I change the logo, splash screen, and app icon automatically?

Use the pre-configured Flutter Launcher Icons and Flutter Native Splash packages. See the Assets Configuration guide.

How do I add a new color theme to the Design Tokens?

Edit the file at lib/themes/design_tokens.dart. Add the new color scheme within the AppTheme class. See the Customization Guide.

How do I change the Package Name (Bundle ID)?

Use the provided change_app_package_name tool:

dart run change_app_package_name:main com.yourcompany.yourapp

To change the app's Display Name, update the label in AndroidManifest.xml (Android) and CFBundleDisplayName in Info.plist (iOS). Full instructions are in the Rename Package Guide.


3. Push Notifications

How do I get the correct google-services.json and GoogleService-Info.plist?

Use the FlutterFire CLI to automate this process:

flutterfire configure

This will download the required files to the correct folders. See the Push Notifications Guide.

Where should I put the FCM service-account.json in the admin-panel?

Place it at admin-panel/storage/app/firebase-auth.json. The filename must match the one called in NotificationSenderService.php.

Why don't push notifications appear when the app is in the background/terminated?

Ensure you have called FirebaseMessaging.onBackgroundMessage in your main() function and added the required permissions in AndroidManifest.xml and AppDelegate.swift.


4. Admin Panel & API Backend

How do I add a new column to the user profile and display it in Filament Admin?

  1. Run php artisan make:migration for the users table.
  2. Add the field to $fillable in the User model.
  3. Add the form/table component in app/Filament/Resources/UserResource.php.

How do I setup an email sender (SMTP/Mailgun/SES)?

Update the environment variables in admin-panel/.env (MAIL_* fields). This is required for the Forgot Password feature to function.

How does 'Privacy Settings' synchronization from Mobile to Database work?

The app sends Map data to the API. Laravel handles the request and saves it to the settings JSON column in the users table.


5. Deployment & Production

How do I build the app for Production?

  • Android: flutter build apk --release or flutter build appbundle.
  • iOS: flutter build ios --release then archive in Xcode.

Is the draft Privacy Policy provided sufficient for the Play Store?

The Privacy Policy provided is a baseline. Ensure you replace placeholders with real information about your business and data privacy practices.

How do I use the Docker setup for deployment?

Use the Dockerfile and compose.yaml files available in the admin-panel and api-backend folders. Follow the Docker Ready guide.


6. Multi-Language (i18n)

How do I add a new language to the mobile app?

Add a new .arb file in the lib/l10n/ folder (e.g., app_id.arb), then run flutter gen-l10n.

Are mobile translations automatically synced with the backend?

No. You must ensure that keys or messages sent from the backend align with the localizations on the frontend if you want full multi-language support.


7. General Troubleshooting

Why doesn't my landing page appear in the documentation sidebar?

Check the meta.json file in the corresponding directory and ensure the .mdx file slug is registered there.

How do I fix 401/Unauthorized errors after logging in?

Check if the Sanctum token is being sent in the request header. If using dio, ensure the auth interceptor is correctly configured.