JetSet is a comprehensive travel planning and discovery mobile application built with Flutter, designed to help travelers explore destinations, access curated guides, and plan their perfect trips. Whether you're a seasoned globetrotter or planning your first adventure, JetSet provides everything you need to make your travel dreams a reality.
- Global Destinations: Explore thousands of destinations worldwide
- Rich Information: Get detailed insights including best time to visit, timezone, currency, and local language
- Weather Data: Access real-time weather information for better trip planning
- Transportation Info: Learn about local transportation options and tips
- High-Quality Images: Stunning destination photography to inspire your travels
- Expert Content: Curated travel guides written by experienced travelers and locals
- Destination-Specific: Guides tailored to specific locations and experiences
- Interactive Elements: Like and view guides to discover the most popular content
- Author Profiles: Learn about guide authors and their travel expertise
- City Exploration: Discover cities and attractions within destinations
- Restaurant Guide: Find the best local dining experiences
- Things to Do: Curated lists of activities and experiences
- Local Insights: Authentic recommendations from travelers who've been there
- Personal Itineraries: Create and manage your travel plans
- Trip Organization: Keep all your travel details in one place
- Travel Mates: Organize group trips and share plans
- Flexible Planning: Adapt your plans as your journey evolves
- Secure Authentication: Multiple sign-in options for your convenience
- Profile Management: Customize your travel preferences and settings
- Cross-Platform Sync: Access your data across all your devices
- Privacy First: Your travel data is secure and private
- Flutter (3.0.0 or higher)
- Dart (3.0.0 or higher)
- Android Studio or VS Code
- Firebase Account (for backend services)
-
Clone the repository
git clone https://github.com/yourusername/jetset-travel-app.git cd jetset-travel-app -
Install dependencies
flutter pub get
-
Firebase Setup
- Create a new Firebase project at Firebase Console
- Enable Authentication, Firestore, and Performance Monitoring
- Download and add your
google-services.json(Android) andGoogleService-Info.plist(iOS) - Update
lib/backend/firebase/firebase_config.dartwith your Firebase configuration
-
Run the application
flutter run
Create a .env file in the root directory with your configuration:
FIREBASE_API_KEY=your_api_key
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_idJetSet follows a clean, scalable architecture pattern:
lib/
├── actions/ # Business logic and API calls
├── auth/ # Authentication management
├── backend/ # Data models and Firebase integration
├── components/ # Reusable UI components
├── flutter_flow/ # FlutterFlow generated utilities
├── pages/ # Application screens
├── custom_code/ # Custom implementations
└── main.dart # Application entry point
- Frontend: Flutter with Material Design
- Backend: Firebase (Firestore, Authentication, Performance)
- State Management: Provider pattern
- Navigation: GoRouter
- Database: Cloud Firestore
- Authentication: Firebase Auth with multiple providers
[Screenshots will be added here showing the app's key features]
-
Authentication Methods
- Email/Password
- Google Sign-In
- Apple Sign-In (iOS)
-
Firestore Collections
destinations- Travel destinationsguides- Travel guidesplaces- Points of interestrestaurants- Dining optionsusers- User profilesmyTrips- User trip plans
-
Security Rules
- Implement proper Firestore security rules
- Set up user authentication requirements
- Configure data access permissions
- Minimum SDK: 21
- Target SDK: 33
- Permissions: Internet, Location (optional)
- Minimum iOS: 12.0
- Capabilities: Sign in with Apple
- Permissions: Location (optional)
Run the test suite to ensure everything works correctly:
# Unit tests
flutter testflutter build apk --releaseflutter build appbundle --releaseflutter build ios --releaseflutter build web --release- Fork the repository
- Create a 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.
- Offline Mode: Access content without internet connection
- Social Features: Share trips and connect with other travelers
- AI Recommendations: Personalized travel suggestions
- Multi-language Support: Localization for global users
- Advanced Planning Tools: Itinerary optimization and scheduling
- Real-time Updates: Live travel alerts and notifications
- Integration APIs: Connect with booking platforms and services