Soulmate is a modern Flutter-based dating and social application designed to help users find meaningful connections. With a sleek user interface, comprehensive security measures, and robust AI integration, it offers a highly engaging experience for discovering and chatting with potential matches.
- Authentication & Security:
- Secure sign-up/login using Email/Password and Google Sign-In.
- Protected session management with local data encrypted via
flutter_secure_storage. - Secure account wiping and strict Firestore cross-validation rules.
- Smart Matching & Discovery:
- Custom Filters: Filter potential matches by age and gender preference.
- Daily Picks: A curated selection of standout users just for you.
- Interactive Home Screen: Highly optimized, buttery-smooth tinder-like card-swiping interface.
- Gamified Chat Experience:
- Relationship Levels: Earn XP for chatting and maintaining streaks to unlock levels like "Acquaintance," "Friend," and "Soulmate."
- Dynamic AI Personas: Interact with highly advanced, context-aware AI personas acting as your matches.
- In-Chat Games: Challenge your matches to quick games like Rock, Paper, Scissors!
- User Profiles:
- Comprehensive Management: A dedicated unified Profile Tab to update bios, interests, and preferences effortlessly.
- Device Uploads & AI Avatars: Upload your own profile pictures directly from your device, or let our AI generate a unique avatar proxy image for you.
- Performance Optimized:
- Strict memory cache constraints to prevent Out-Of-Memory (OOM) crashes on mobile devices.
- Streamlined memory handling with leak-proof chat streams.
- Frontend: Flutter (Dart)
- Backend & Services: Firebase
- Firebase Auth: User authentication securely handled.
- Cloud Firestore: Real-time database for user metadata and activity tracking.
- Firebase Storage: For user uploaded images.
- Local Storage:
flutter_secure_storagefor encrypted on-device message caching. - State Management: Provider
- Key Packages:
flutter_card_swiper: For fluid swipe animations.cached_network_image: Efficient, aggressively-optimized image loading and caching.google_generative_ai: Powering the conversational matchmaking AI.
Follow these steps to set up the project locally.
- Flutter SDK: Ensure you have Flutter installed. Install Flutter.
- Firebase Project: Configure a Firebase project with Authentication, Firestore, and Storage enabled.
-
Clone the repository:
git clone https://github.com/yourusername/soulmate.git cd soulmate -
Install dependencies:
flutter pub get
-
Configure Environment:
- Create a
.envfile in the root directory and specify your AI keys and API config. - Ensure
android/app/google-services.jsonandios/Runner/GoogleService-Info.plistare correctly placed.
- Create a
-
Run the App:
flutter run
Security is a top priority. For information on responsible disclosure and supported versions, please refer to SECURITY.md.
Soulmate includes a proprietary LICENSE file. Please review it for terms regarding distribution and use.
Contributions are welcome! Please feel free to open an issue or submit a Pull Request.