A comprehensive Flutter application for sports enthusiasts to connect, chat, and share their passion for sports. Built with Firebase backend and real-time features.
- 🔐 Authentication: Google Sign-In integration
- 💬 Real-time Chat: Instant messaging with Firebase Firestore
- 📸 Media Sharing: Photo and video sharing capabilities
- 🗺️ Location Services: Google Maps integration for location sharing
- 🔔 Push Notifications: Real-time notifications for messages and events
- 😊 Emoji Support: Rich emoji picker for enhanced messaging
- 🏃♂️ Sports Features: Specialized features for sports communities
- 📱 Cross-Platform: Runs on Android, iOS, and Web
- Flutter SDK (3.9.2 or higher)
- Firebase account
- Google Cloud Platform account (for Maps API)
- Android Studio / Xcode for mobile development
-
Clone the repository
git clone https://github.com/Muhammadali2025222/sports-chat-app.git cd sports_chat_app -
Install dependencies
flutter pub get
-
Configure API Keys (IMPORTANT!)
cp api_keys_template.env api_keys.env
Then edit
api_keys.envwith your actual API keys. See API_KEYS_SETUP.md for detailed instructions. -
Add Firebase Configuration Files
- Download
google-services.jsonfrom Firebase Console → place inandroid/app/ - Download
GoogleService-Info.plistfrom Firebase Console → place inios/Runner/
- Download
-
Run the app
flutter run
- ✅ Android (API 21+)
- ✅ iOS (12.0+)
- ✅ Web
⚠️ Windows (Limited support)⚠️ macOS (Limited support)⚠️ Linux (Limited support)
- Flutter - Cross-platform UI framework
- Dart - Programming language
- Firebase Auth - User authentication
- Cloud Firestore - Real-time database
- Firebase Storage - File storage
- Cloud Functions - Server-side logic
- Firebase Messaging - Push notifications
- Google Maps API - Location services
- Google Sign-In - Authentication
- Geolocator - Location tracking
- Image Picker - Camera/gallery access
lib/
├── main.dart # App entry point
├── assets/ # Images and static assets
├── models/ # Data models
├── services/ # Firebase and API services
├── screens/ # UI screens
├── widgets/ # Reusable UI components
└── utils/ # Helper functions
android/ # Android-specific code
ios/ # iOS-specific code
web/ # Web-specific code
functions/ # Firebase Cloud Functions
- Create Firebase project
- Enable Authentication, Firestore, Storage, Functions
- Configure security rules (see
firestore.rulesandstorage.rules) - Deploy Cloud Functions:
firebase deploy --only functions
- Enable Maps SDK for Android/iOS/JavaScript
- Create API key with proper restrictions
- Update
web/index.htmlwith your API key
For detailed setup instructions, see API_KEYS_SETUP.md.
The app includes comprehensive push notification support:
- Real-time message notifications
- Event notifications
- Background notification handling
- Custom notification sounds and actions
See COMPLETE_NOTIFICATIONS_GUIDE.md for setup details.
flutter testAndroid:
flutter build apk --release
# or
flutter build appbundle --releaseiOS:
flutter build ios --releaseWeb:
flutter build web --release- Uses
flutter_lintsfor code analysis - Follows Flutter/Dart style guidelines
- Includes comprehensive error handling
flutter run- Run in development modeflutter build- Build for productionflutter test- Run testsflutter clean- Clean build cacheflutter doctor- Check development setup
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Build failures: Run
flutter clean && flutter pub get - Firebase connection issues: Check configuration files
- Maps not loading: Verify API key and enabled services
- Notifications not working: Check FCM setup and permissions
- Check API_KEYS_SETUP.md for configuration help
- Review Firebase Console for service status
- Run
flutter doctorto check development environment - Check the Issues page for known problems
For support and questions:
- Create an issue in this repository
- Check existing documentation files
- Review Firebase and Flutter documentation