A Flutter-based social event management application with location tracking and participant management features.
- Material 3 Theming: Custom color scheme with pastel colors and modern typography
- Firebase Integration: Authentication and Firestore database
- Authentication Screens: Login and signup with form validation
- Event Management: Create, view, and manage events
- Participant System: Join requests with approval/rejection workflow
- Location Sharing: Toggle for participant location visibility
- Modern UI: Rounded cards, animations, and responsive design
- Google Maps Integration: Currently shows placeholder UI (ready for integration)
- Geolocator: Location tracking infrastructure in place
- Real-time Updates: Firestore streams for live data
- Full Google Maps Integration: Interactive maps with custom markers
- Real-time Location Tracking: Live participant location updates
- Push Notifications: Event updates and ride start notifications
- Route Planning: Navigation between event venue and participants
- Advanced Analytics: Event statistics and participant insights
The app includes the following screens matching the wireframe design:
- Login Screen: Email/password authentication with validation
- Signup Screen: User registration with form validation
- Home Screen: Tabbed interface for "My Events" and "Participating"
- Create Event: Form with date/time picker and location selection
- Event Details: Different views for organizers and participants
- Live Map: Map view with location pins (placeholder for Google Maps)
lib/
โโโ models/ # Data models (User, Event)
โโโ providers/ # State management (AuthProvider)
โโโ screens/ # UI screens
โโโ services/ # Firebase and external services
โโโ utils/ # Theme and utilities
โโโ widgets/ # Reusable UI components
- Flutter SDK (3.8.1 or higher)
- Dart SDK
- Android Studio / VS Code
- Firebase project
git clone <repository-url>
cd gatheringpepsflutter pub get- Go to Firebase Console
- Create a new project
- Enable Authentication (Email/Password)
- Create Firestore database
- Download
google-services.json(Android) andGoogleService-Info.plist(iOS) - Place them in the respective platform directories:
- Android:
android/app/google-services.json - iOS:
ios/Runner/GoogleService-Info.plist
- Android:
Add to android/app/build.gradle.kts:
plugins {
id("com.google.gms.google-services")
}Add to android/build.gradle.kts:
dependencies {
classpath("com.google.gms:google-services:4.4.0")
}Add to ios/Runner/Info.plist:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>REVERSED_CLIENT_ID</string>
<key>CFBundleURLSchemes</key>
<array>
<string>REVERSED_CLIENT_ID</string>
</array>
</dict>
</array>- Enable Maps SDK in Google Cloud Console
- Get API key and add to platform configurations
- Update the placeholder map widgets with actual Google Maps integration
flutter runflutter: UI frameworkprovider: State managementfirebase_core: Firebase initializationfirebase_auth: Authenticationcloud_firestore: Database
google_maps_flutter: Google Maps integrationgeolocator: Location servicesgeocoding: Address geocoding
intl: Internationalizationflutter_svg: SVG supportcached_network_image: Image caching
{
"email": "user@example.com",
"name": "User Name",
"createdAt": "timestamp",
"isLocationShared": false,
"currentLocation": "geopoint",
"lastLocationUpdate": "timestamp"
}{
"title": "Event Title",
"description": "Event Description",
"dateTime": "timestamp",
"venue": "geopoint",
"venueAddress": "123 Main St",
"organizerId": "user_id",
"organizerName": "Organizer Name",
"participantIds": ["user1", "user2"],
"participantStatuses": {
"user1": "approved",
"user2": "pending"
},
"status": "upcoming",
"createdAt": "timestamp",
"startRideTime": "timestamp",
"isRideStarted": false
}- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions, please open an issue in the repository or contact the development team.
Note: This is Phase 1 of the GatheringPeps app. Google Maps integration and real-time location tracking are implemented as placeholders and ready for full integration in Phase 2.