Third Places is a mobile application designed to help users discover and engage with local parks and green spaces. The app aims to increase accessibility to public spaces and foster community engagement through shared outdoor experiences.
To create an intuitive platform that connects people with local green spaces and builds community through shared outdoor experiences.
- Primary: Young adults in the Bay Area looking to discover new parks
- Secondary: Community event organizers and local park enthusiasts
- Future: Broader age groups and geographic regions
- 🔐 User Authentication
- Email/password login
- Google Sign-In
- Apple Sign-In
- Profile management
- 🗺️ Park Discovery
- List and map views of nearby parks
- Detailed park information
- Distance-based filtering
- Park search functionality
- Save favorite parks
- 📅 Community Events
- Browse local park events
- Event details and registration
- Save events to device calendar
- Advanced park filtering by amenities
- User-created events
- Social features and friend system
- Tree Tokens reward system
- Offline support
- Park reviews and ratings
-
Flutter Setup
- Install Flutter by following the official installation guide
- Run
flutter doctorto verify your installation - Minimum Flutter version: 3.5.3
- Required dependencies are listed in
pubspec.yaml
-
Development Environment
- Install VS Code or Android Studio
- Install Flutter and Dart plugins for your IDE
- For iOS development:
- Mac computer with Xcode installed
- iOS Simulator or physical iOS device
- CocoaPods installed
-
Firebase Setup
- Create a Firebase account
- Install Firebase CLI:
npm install -g firebase-tools - Login to Firebase:
firebase login - Create a new Firebase project
- Enable Authentication (Email/Password, Google, Apple Sign-In)
- Set up Cloud Firestore
- Follow the FlutterFire installation guide
-
Clone the Repository
git clone https://github.com/your-org/third-places.git cd third-places -
Install Dependencies
flutter pub get
-
Firebase Configuration
- Download
GoogleService-Info.plistfrom Firebase Console - Place it in
ios/Runner - Update Firebase configuration in
lib/firebase/firebase_options.dart
- Download
-
iOS Setup
cd ios pod install cd ..
-
Run the App
flutter run
lib/
├── assets/ # Custom widgets and UI components
├── firebase/ # Firebase configuration and services
├── models/ # Data models
├── providers/ # Riverpod state management
├── screens/ # App screens
├── theme/ # App theming
├── util/ # Utility functions
└── widgets/ # Reusable widgets
- Use Riverpod for state management
- Create providers in the
providers/directory - Follow the provider naming convention:
*Provider
- Follow the Flutter style guide
- Use meaningful variable and function names
- Add comments for complex logic
- Implement proper error handling
- Write unit tests for business logic
- Create widget tests for UI components
- Test critical user flows
- Run tests before submitting PRs:
flutter test
- Create feature branch from
develop - Make changes and test locally
- Submit PR for review
- Merge to
developafter approval
-
Firebase Configuration
- Verify
GoogleService-Info.plistis in the correct location - Check Firebase configuration in
firebase_options.dart
- Verify
-
iOS Build Issues
- Clean build:
flutter clean - Update pods:
cd ios && pod update - Verify minimum iOS version in
Podfile
- Clean build:
-
Location Services
- Enable location permissions in iOS settings
- Check location permission handling in code
- Check the Flutter documentation
- Review the Firebase Flutter documentation
- Ask questions in the project's Slack channel
- Create an issue in the repository
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Wait for review and approval
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or support, contact the development team at team@thirdplaces.com