Skip to content

robertointech/interest-match-app

Repository files navigation

💕 Interest Match App

A modern dating application built with Flutter and Supabase that connects people through shared interests and compatibility rather than just physical appearance.

Flutter Dart Supabase

🌟 Features

  • 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%)

🛠️ Tech Stack

  • Frontend: Flutter (Dart)
  • Backend: Supabase
    • PostgreSQL Database
    • Authentication
    • Real-time subscriptions
  • State Management: Provider
  • UI Components:
    • flutter_card_swiper
    • cached_network_image

🚀 Getting Started

Prerequisites

  • Flutter SDK 3.0.0+
  • Dart SDK
  • Supabase account

Installation

  1. Clone the repository
git clone https://github.com/robertointech/interest-match-app.git
cd interest-match-app
  1. Install dependencies
flutter pub get
  1. Create a .env file in the root directory:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
  1. Set up the database:

    • Create a new project at supabase.com
    • Run supabase_schema.sql in your Supabase SQL Editor
    • Optionally run sample_questions.sql for sample questions
  2. Run the app

flutter run -d chrome

📱 How It Works

User Flow

  1. Sign Up with email and password
  2. Complete Questionnaire - Answer 23 questions about interests and preferences
  3. Browse Matches - Swipe through compatible users
  4. Connect - Chat with matched users in real-time

Matching Algorithm

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

🗄️ Database Schema

  • 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

🔐 Security

  • Row Level Security (RLS) enabled on all tables
  • Secure authentication with Supabase Auth
  • Environment variables for sensitive credentials
  • Input validation and sanitization

📸 Screenshots

Coming soon

🎯 Future Enhancements

  • 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

📝 License

This project is open source and available under the MIT License.

👤 Author

Roberto - GitHub Profile


⭐ If you found this project interesting, please consider giving it a star!

About

Dating app based on shared interests - Built with Flutter & Supabase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors