Skip to content

Repository files navigation

CoupleTest 💕 — AI-Powered Personalized Relationship Quiz App

🇹🇷 Türkçe🇬🇧 English


🇹🇷 Türkçe

CoupleTest Header React Native TypeScript Supabase Bun

CoupleTest, çiftlerin birbirlerini ne kadar iyi tanıdığını ölçmek amacıyla kişiselleştirilmiş, eğlenceli ve yapay zeka destekli ilişki testleri oluşturup çözebilecekleri açık kaynaklı bir mobil uygulamadır.


🌟 Öne Çıkan Özellikler

  • 🤖 Sıfır Maliyetli & Güvenli Yapay Zeka Entegrasyonu: Uygulama sunucu tarafında hiçbir API anahtarı tutmaz. Kullanıcı kendi yapay zekasını (ChatGPT, Gemini vb.) kullanarak tamamen kendisine özel testler üretir.
  • 🔗 Deep Link Paylaşımı (coupletest://): Üretilen test tek bir bağlantı ile partnerle paylaşılır. Linke tıklandığında uygulama cihazda doğrudan açılır.
  • 🛡️ Gelişmiş Veritabanı Güvenliği (RLS): Supabase Row Level Security ile tüm veriler yetkisiz erişimlere karşı koruma altındadır.
  • 📝 Güçlü Form Doğrulaması: react-hook-form ve zod entegrasyonu sayesinde anlık ve dinamik veri doğrulama.
  • 🚨 Kesintisiz Kullanıcı Deneyimi: react-error-boundary ile çalışma zamanı hatalarında uygulamayı çökertmeyen kullanıcı dostu kurtarma ekranı.
  • 🎨 Modern Koyu Mod Tasarımı: Akıcı animasyonlar, özel renk paleti ve yüksek kullanılabilirlik.

🛠️ Teknoloji Yığını

Bileşen Teknoloji
Mobil Çerçeve React Native / Expo SDK 57
Paket Yöneticisi Bun
Backend & Veritabanı Supabase (PostgreSQL, Auth, RLS)
Serverless Functions Supabase Edge Functions (Deno)
Form & Validasyon React Hook Form & Zod
Hata Yönetimi React Error Boundary

📁 Proje Yapısı

CoupleTest/
├── src/
│   ├── components/      # Global ve özelleştirilmiş UI bileşenleri (ErrorBoundary vb.)
│   ├── lib/             # Tema (Colors, Typography, Spacing) ve Supabase İstemcisi
│   ├── navigation/      # React Navigation yapılandırması & Deep Link ayarları
│   └── screens/         # Uygulama ekranları (Login, Home, CreateQuiz, Share, QuizPlay)
├── supabase/
│   ├── config.toml      # Supabase yerel konfigürasyonu
│   ├── functions/       # Edge Functions (share-quiz deep link yönlendirmesi)
│   └── migrations/      # RLS ve veritabanı şema SQL göç dosyaları
├── App.tsx              # Ana uygulama giriş noktası
└── package.json         # Bağımlılıklar ve npm/bun scriptleri

🚀 Kurulum ve Çalıştırma

1. Ön Gereksinimler

Bilgisayarınızda aşağıdaki araçların kurulu olduğundan emin olun:

  • Node.js (v18+)
  • Bun paket yöneticisi
  • Expo Go uygulaması (Fiziksel cihazınızda test etmek için) veya Android Studio / Xcode (Emülatörler için)
  • Supabase CLI (bunx supabase)

2. Depoyu Klonlama ve Bağımlılıkları Kurma

git clone https://github.com/kullaniciadi/CoupleTest.git
cd CoupleTest

# Bağımlılıkları yükleyin
bun install

3. Ortam Değişkenlerini Yapılandırma

Kök dizinde .env adında bir dosya oluşturun ve Supabase bilgilerinizi ekleyin:

EXPO_PUBLIC_SUPABASE_URL=https://<PROJECT_REF>.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=<YOUR_SUPABASE_ANON_KEY>

4. Supabase Veritabanı ve RLS Migrasyonları

Supabase projenize bağlanın ve RLS politikalarını veritabanınıza uygulayın:

# Supabase projenizi bağlayın
bunx supabase link --project-ref <PROJECT_REF>

# Veritabanı migrasyonlarını gönderin
yes y | bunx supabase db push

5. Edge Function Dağıtımı

Deep link yönlendirmesini sağlayan share-quiz Edge Function'ını canlı ortama gönderin:

bunx supabase functions deploy share-quiz

6. Uygulamayı Çalıştırma

Android cihazda veya emülatörde çalıştırmak için:

bun run android

iOS simülatöründe çalıştırmak için (macOS gerektirir):

bun run ios

📱 Kullanım Kılavuzu

  1. Giriş Yapın / Kaydolun: E-posta ve şifrenizle veya Google OAuth seçeneğiyle oturum açın.
  2. Test Oluşturun:
    • Adım 1: Partnerinizin adını ve test kategorisini (Aşk, İletişim, Yakınlık, Eğlence) seçin.
    • Adım 2: Testin konusunu veya özel anı detaylarını girin.
    • Adım 3: "Promptu Kopyala" butonuna basın, kopyalanan metni ChatGPT veya Gemini hesabınıza yapıştırın. Yapay zekanın ürettiği JSON çıktısını uygulamadaki kutuya yapıştırıp "Testi Kaydet"e tıklayın.
  3. Paylaşın & Çözün: Oluşan bağlantıyı partnerinize gönderin. Partneriniz linke tıkladığında test doğrudan mobil uygulamasında açılacaktır!

🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz! Hata bildirimleri veya yeni özellik talepleri için lütfen Issue açın veya bir Pull Request gönderin:

  1. Depoyu forklayın (git checkout -b feature/YeniOzellik)
  2. Değişikliklerinizi commit edin (git commit -m 'feat: Yeni özellik eklendi')
  3. Dalınızı push edin (git push origin feature/YeniOzellik)
  4. Bir Pull Request oluşturun.

📄 Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.



🇬🇧 English

CoupleTest Header React Native TypeScript Supabase Bun

CoupleTest is an open-source mobile application designed for couples to create and solve personalized, fun, and AI-powered relationship quizzes to discover how well they truly know each other.


🌟 Key Features

  • 🤖 Zero-Cost & Secure AI Integration: The app stores no AI API keys on the server. Users generate personalized quizzes using their own personal AI accounts (ChatGPT, Gemini, etc.), eliminating API costs and security risks.
  • 🔗 Deep Link Sharing (coupletest://): Quizzes are shared via a single dynamic link. Tapping the link directly launches the quiz inside the mobile app.
  • 🛡️ Robust Database Security (RLS): Powered by Supabase Row Level Security to ensure strict data privacy and access control.
  • 📝 Strict Form Validation: Dynamic schema validation powered by react-hook-form and zod.
  • 🚨 Seamless Error Handling: Integrated with react-error-boundary to provide a user-friendly recovery UI during runtime errors.
  • 🎨 Modern Dark Mode UI: Smooth micro-animations, tailored color palette, and high usability.

🛠️ Tech Stack

Component Technology
Mobile Framework React Native / Expo SDK 57
Package Manager Bun
Backend & Database Supabase (PostgreSQL, Auth, RLS)
Serverless Functions Supabase Edge Functions (Deno)
Form & Validation React Hook Form & Zod
Error Boundary React Error Boundary

📁 Project Structure

CoupleTest/
├── src/
│   ├── components/      # Global & UI components (ErrorBoundary, etc.)
│   ├── lib/             # Theme tokens (Colors, Typography, Spacing) & Supabase Client
│   ├── navigation/      # React Navigation setup & Deep Linking config
│   └── screens/         # Core screens (Login, Home, CreateQuiz, Share, QuizPlay)
├── supabase/
│   ├── config.toml      # Supabase local project config
│   ├── functions/       # Serverless Edge Functions (share-quiz deep link redirect)
│   └── migrations/      # RLS policies & SQL schema migration files
├── App.tsx              # Application entry point
└── package.json         # Dependencies and npm/bun scripts

🚀 Getting Started

1. Prerequisites

Ensure you have the following installed on your machine:

  • Node.js (v18+)
  • Bun package manager
  • Expo Go app (for physical device testing) or Android Studio / Xcode (for emulators)
  • Supabase CLI (bunx supabase)

2. Clone the Repository & Install Dependencies

git clone https://github.com/yourusername/CoupleTest.git
cd CoupleTest

# Install dependencies
bun install

3. Environment Variables Setup

Create a .env file in the root directory and fill in your Supabase credentials:

EXPO_PUBLIC_SUPABASE_URL=https://<PROJECT_REF>.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=<YOUR_SUPABASE_ANON_KEY>

4. Database Setup & RLS Migrations

Link your Supabase project and push the database migrations:

# Link your Supabase project
bunx supabase link --project-ref <PROJECT_REF>

# Apply database migrations
yes y | bunx supabase db push

5. Deploy Edge Functions

Deploy the share-quiz Edge Function for deep link redirection:

bunx supabase functions deploy share-quiz

6. Run the Application

To launch on Android device or emulator:

bun run android

To launch on iOS simulator (requires macOS):

bun run ios

📱 User Guide

  1. Sign In / Sign Up: Log in using your email/password or Google OAuth.
  2. Create a Quiz:
    • Step 1: Enter your partner's name and choose a category (Love, Communication, Intimacy, Fun).
    • Step 2: Enter a specific topic or shared memories.
    • Step 3: Tap "Copy Prompt", paste it into your ChatGPT/Gemini account, then paste the AI's JSON output back into the app and tap "Save Quiz".
  3. Share & Play: Send the generated link to your partner. When your partner clicks the link, the quiz will open directly inside the app!

🤝 Contributing

Contributions are welcome! Please feel free to open an Issue or submit a Pull Request:

  1. Fork the repository (git checkout -b feature/NewFeature)
  2. Commit your changes (git commit -m 'feat: Add new feature')
  3. Push to the branch (git push origin feature/NewFeature)
  4. Open a Pull Request.

📄 License

This project is licensed under the MIT License.

About

AI-powered personalized couples quiz app built with React Native (Expo), Supabase, Deno Edge Functions, and Bun.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages