A modern dating application built with Flutter and Supabase that connects people through shared interests and compatibility rather than just physical appearance.
- Smart Matching Algorithm: Connects users based on questionnaire responses and compatibility scores
- Swipe Interface: Intuitive card-swipe UI for browsing potential matches
- Real-time Chat: Instant messaging for matched users powered by Supabase real-time
- User Authentication: Secure sign-up and login with Supabase Auth
- Interest-based Profiles: Comprehensive questionnaire system with 23+ questions
- Compatibility Scoring: Intelligent algorithm calculates match percentage (0-100%)
- Frontend: Flutter (Dart)
- Backend: Supabase
- PostgreSQL Database
- Authentication
- Real-time subscriptions
- State Management: Provider
- UI Components:
- flutter_card_swiper
- cached_network_image
- Flutter SDK 3.0.0+
- Dart SDK
- Supabase account
- Clone the repository
git clone https://github.com/robertointech/interest-match-app.git
cd interest-match-app- Install dependencies
flutter pub get- Create a
.envfile in the root directory:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key-
Set up the database:
- Create a new project at supabase.com
- Run
supabase_schema.sqlin your Supabase SQL Editor - Optionally run
sample_questions.sqlfor sample questions
-
Run the app
flutter run -d chrome- Sign Up with email and password
- Complete Questionnaire - Answer 23 questions about interests and preferences
- Browse Matches - Swipe through compatible users
- Connect - Chat with matched users in real-time
The app calculates compatibility based on:
- Multiple Choice Questions: Exact matches score higher
- Scale Questions: Closer values indicate better compatibility
- Text Questions: Common keywords suggest similarity
- Question Weights: Important questions (1-10) have more impact on final score
- users: User profiles and questionnaire responses (JSONB)
- questions: Available questions with types, options, and weights
- matches: Matched user pairs with compatibility scores
- messages: Chat messages between matched users
- Row Level Security (RLS) enabled on all tables
- Secure authentication with Supabase Auth
- Environment variables for sensitive credentials
- Input validation and sanitization
Coming soon
- Photo upload functionality
- Advanced filtering options (age, location, interests)
- Push notifications for new matches and messages
- Video chat integration
- User verification system
- Report and block features
- Profile recommendations based on ML
This project is open source and available under the MIT License.
Roberto - GitHub Profile
⭐ If you found this project interesting, please consider giving it a star!