πŸ‘

Relationsheep

A Faith-Based Dating Platform for INC Church

Connecting Iglesia Ni Cristo members worldwide with advanced privacy controls, location-based matching, and a safe, respectful environment for meaningful relationships.

Overview

🎯

INC Church Focused

Designed specifically for Iglesia Ni Cristo members to connect within their faith community, respecting church teachings and guidelines.

πŸ”’

Privacy First

Granular location privacy controls at country, district, and locality levels. GPS coordinates are never shown to users.

πŸ“±

Cross-Platform

Available on Android, iOS, and Web with a single codebase using React Native + React Native Web for maximum efficiency.

πŸ‘₯

Community Safe

18+ age restriction, robust moderation tools, and comprehensive admin panel for church management.

Key Features

User Features

πŸ” Authentication

Gmail OAuth and email/password registration with age verification (18+)

πŸ‘€ Profile Management

INC membership declaration, church affiliation, multiple photos, and detailed preferences

πŸ” Smart Matching

Algorithm-based suggestions prioritizing INC members with customizable filters

πŸ“ Location Privacy

Hide from country, district, or locality. GPS never displayed - only approximate distance

πŸ’¬ Real-Time Messaging

Secure messaging after mutual match with read receipts and typing indicators

πŸ›‘οΈ Safety & Moderation

Report and block users, content moderation, and safety guidelines

πŸ”” Notifications

Push notifications for matches, messages, and important updates

🎚️ Advanced Filters

Filter by INC membership, age, distance, church, and interests

Admin Features

🌍 Geographic Management

Manage countries, districts, and localities in hierarchical structure

β›ͺ Church Management

Add, edit, and manage INC churches with location associations

πŸ‘₯ User Management

View, edit, suspend users, and monitor activity with comprehensive search

πŸ›‘οΈ Moderation Tools

Review reports, take moderation actions, and maintain community safety

πŸ“Š Analytics Dashboard

User statistics, match analytics, geographic distribution, and exportable reports

πŸ” Role-Based Access

Multiple admin roles with ACL (Access Control List) for granular permissions

Technical Architecture

System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Client Applications β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Android β”‚ β”‚ iOS β”‚ β”‚ Web β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ Shared UI Layer β”‚ β”‚ (React Native + React Native Web) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ REST API β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Backend Services β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ API Gateway / Load Balancer β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ Auth β”‚ β”‚ Matching β”‚ β”‚ Messagingβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Service β”‚ β”‚ Service β”‚ β”‚ Service β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ Profile β”‚ β”‚ Location β”‚ β”‚ Admin β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Service β”‚ β”‚ Service β”‚ β”‚ Service β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Database Layer β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ PostgreSQL β”‚ β”‚ Redis β”‚ β”‚ S3/ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ (Primary) β”‚ β”‚ (Cache) β”‚ β”‚ Storage β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technology Stack

React Native React Native Web Node.js PostgreSQL Redis Socket.io Docker AWS S3 Gmail OAuth

Application Wireframes

πŸ“± View Interactive Wireframes β†’

πŸ“± User Onboarding Flow

1. Welcome Screen - Relationsheep mascot logo - "Join your INC community" messaging - Get Started button 2. Registration - Sign up with Gmail button (OAuth) - OR email/password registration - Age verification (18+ checkbox) - Terms of service acceptance 3. Profile Setup - Basic Info - First name, last name - Date of birth (age verification) - Gender selection - Multiple profile photos upload 4. Profile Setup - INC Membership - "Are you a member of INC Church?" toggle - INC Church selection (if member) - Years of membership 5. Profile Setup - Location & Privacy - Location selection (country, district, locality) - Privacy toggles: β€’ Hide from my country β€’ Hide from my district β€’ Hide from my locality - Note: GPS never shown 6. Profile Setup - Preferences - Age range preference - Distance preference - Interests/tags - Bio text area

🏠 Main Application Screens

Home Screen (Discovery) β”œβ”€β”€ Top Navigation: Relationsheep logo, Messages, Profile β”œβ”€β”€ Filter Bar: "Show only INC members" toggle β”œβ”€β”€ Profile Cards (swipeable/clickable) β”‚ β”œβ”€β”€ Photo carousel β”‚ β”œβ”€β”€ Name, age β”‚ β”œβ”€β”€ INC Church badge (if member) β”‚ β”œβ”€β”€ Distance (approximate, no GPS) β”‚ β”œβ”€β”€ Common interests β”‚ └── Like/Pass buttons └── Bottom Navigation: Discover, Matches, Messages, Profile Matches Screen β”œβ”€β”€ List of mutual matches β”œβ”€β”€ Each match shows: photo, name, last active └── Tap to open conversation Messages Screen β”œβ”€β”€ Conversation list β”œβ”€β”€ Each shows: photo, name, last message preview, timestamp └── Unread badges Chat Screen β”œβ”€β”€ Header: Match's photo, name, online status β”œβ”€β”€ Message bubbles (sent/received) β”œβ”€β”€ Typing indicators β”œβ”€β”€ Read receipts └── Text input with send button Profile & Settings β”œβ”€β”€ Own profile view/edit β”œβ”€β”€ Privacy settings β”œβ”€β”€ Notification preferences └── Blocked users, report options

πŸ–₯️ Admin Dashboard

Admin Panel (Web-Based) β”œβ”€β”€ Sidebar Navigation (ACL-based) β”‚ β”œβ”€β”€ Dashboard (overview statistics) β”‚ β”œβ”€β”€ Users Management β”‚ β”œβ”€β”€ Churches Management β”‚ β”œβ”€β”€ Countries/Districts/Localities β”‚ β”œβ”€β”€ Reports/Moderation β”‚ └── Analytics β”‚ β”œβ”€β”€ Dashboard View β”‚ β”œβ”€β”€ Statistics Cards: β”‚ β”‚ β”œβ”€β”€ Total users β”‚ β”‚ β”œβ”€β”€ Active users β”‚ β”‚ β”œβ”€β”€ INC members vs non-INC β”‚ β”‚ β”œβ”€β”€ Total matches β”‚ β”‚ └── Messages sent β”‚ └── Recent activity feed β”‚ β”œβ”€β”€ Geographic Management β”‚ └── Hierarchical tree: Countries β†’ Districts β†’ Localities β”‚ └── CRUD operations for each level β”‚ β”œβ”€β”€ Church Management β”‚ └── Add/Edit/Delete INC churches β”‚ └── Associate with locations β”‚ β”œβ”€β”€ User Management β”‚ └── Search, filter, view, edit, suspend users β”‚ └── Moderation └── Review reports, take actions (warn, suspend, delete)

Key Differentiators

🎯 INC Church Specific

Designed exclusively for Iglesia Ni Cristo members, respecting church teachings and community values.

πŸ”’ Advanced Privacy

Granular location privacy at country, district, and locality levels. GPS coordinates are never stored or displayed.

πŸ‘ Relationsheep Branding

Friendly mascot integrated throughout the app, creating a warm, community-focused experience.

🌐 Cross-Platform

Single codebase for Android, iOS, and Web ensures consistent experience and efficient maintenance.

πŸ›‘οΈ Safety First

18+ enforcement, robust moderation, reporting system, and comprehensive admin controls.

βš™οΈ Complete Solution

Full-featured admin panel for church management, user moderation, and analytics.

Development Timeline

Phase 1: Foundation

Project setup, Docker Compose configuration, database schema design, basic authentication, and admin panel foundation.

Phase 2: Core User Features

User registration, profile creation, location and privacy settings, matching algorithm, and discovery interface.

Phase 3: Communication

Real-time messaging system, chat interface, and push notifications.

Phase 4: Admin Features

Geographic management, church management, user management, and moderation tools.

Phase 5: Polish & Security

Security hardening, performance optimization, UI/UX refinement, and comprehensive testing.

Phase 6: Deployment

Production environment setup, App Store submissions (iOS/Android), web deployment, and monitoring.

Database Schema Overview

Core Entities

users - User profiles, authentication, INC membership status churches - INC Church information and affiliations countries - Country data districts - District data (linked to countries) localities - Locality data (linked to districts) user_church_affiliations - Many-to-many: users ↔ churches user_location_privacy - Privacy settings per geographic level user_likes - One-way likes (for matching algorithm) matches - Match records and status (mutual likes) messages - Chat messages between users admin_users - Admin accounts with roles admin_permissions - Access control list (ACL) reports - User reports and moderation records Key Relationships: β€’ User β†’ Church (many-to-many, with INC membership flag) β€’ User β†’ Location Privacy (one-to-many: country, district, locality) β€’ Country β†’ District β†’ Locality (hierarchical) β€’ User β†’ Matches (many-to-many, requires mutual like) β€’ User β†’ Messages (many-to-many, requires mutual match) β€’ Admin β†’ Permissions (many-to-many via ACL)

Security & Compliance

πŸ” End-to-End Encryption

All messages encrypted for user privacy

πŸ”’ Secure Authentication

Gmail OAuth 2.0 and secure password hashing

πŸ“ Location Privacy

GPS coordinates never stored or displayed

πŸ›‘οΈ Data Protection

GDPR and privacy law compliance

βœ… Age Verification

18+ enforcement with country-specific legal compliance

🚫 Content Moderation

Robust reporting and moderation system