Skip to content

heyman333/fitting-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fitting App Icon

Fitting

Fashion-based Dating App for iOS

A curated dating experience where style meets connection. Match with people who share your fashion aesthetic.

Expo React Native TypeScript Supabase


Screenshots

Explore Feed Profile Detail Photo Upload Style & Brand
Explore Feed   ·   Profile Detail   ·   Photo Upload   ·   Style & Brand Selection

Overview

Fitting is a fashion-forward dating app that matches users based on style compatibility. Rather than swiping on faces, users first connect through their fashion aesthetic — revealing profile photos only after a mutual match.

Key Concepts

  • Style-first matching — Compatibility score weighted heavily on fashion style (30%), with height, age, occupation, weekend hangout spots, and color palette preferences
  • Photo reveal after match — Face photos unlock only when both users match
  • Curated community — New users go through an approval process to maintain quality
  • Real-time chat — Instant messaging after matching with push notification support

Features

Feature Description
Apple Sign In Native iOS authentication
Onboarding 7-step profile setup (style, brands, photos, Q&A)
Matching Algorithm Multi-factor scoring system (fashion, height, age, etc.)
Explore Daily recommendation feed (up to 5 per day)
Like / Heart Send likes and get notified on matches
Chat Real-time messaging with Supabase Realtime
Push Notifications Expo push notifications for likes, matches, messages
Saved Users Bookmark interesting profiles
Block & Report User safety tools
Profile Edit Update photos, style, brands, Q&A anytime
Force Update / Maintenance Remote app config via Supabase

Tech Stack

Frontend

Backend

  • Supabase — Auth, PostgreSQL, Storage, Realtime, Edge Functions
  • Supabase Edge Functions — Push notification delivery (Deno)
  • Row Level Security (RLS) — Fine-grained data access control
  • PostgreSQL Functions — Matching algorithm logic via RPC

DevOps


Project Structure

fitting-app/
├── app/                    # expo-router screens
│   ├── (onboarding)/       # Onboarding flow (7 steps)
│   ├── (tabs)/             # Main tab navigation
│   │   ├── index.tsx       # Home / Explore feed
│   │   ├── hearts.tsx      # Likes & matches
│   │   ├── chat.tsx        # Conversations list
│   │   └── settings.tsx    # Settings
│   ├── chat/[id].tsx       # Chat room
│   ├── profile/            # Profile view & edit
│   └── user/[id].tsx       # Other user's profile
├── api/                    # Supabase query functions
├── components/             # Shared UI components
│   └── ui/                 # gluestack-ui components
├── hooks/
│   ├── queries/            # TanStack Query hooks
│   └── mutations/          # TanStack Mutation hooks
├── stores/                 # Zustand stores
├── supabase/
│   ├── functions/          # Edge Functions
│   └── migrations/         # Database migrations
├── lib/                    # Utilities (supabase client, etc.)
├── types/                  # TypeScript types
└── docs/                   # Architecture documentation

Matching Algorithm

Compatibility scores are computed via a PostgreSQL RPC function:

Total Score = (
  Height Score    × 20% +
  Age Score       × 20% +
  Fashion Score   × 30% +   ← Style (60%) + Brand (40%)
  Occupation      × 10% +
  Weekend Spot    × 10% +
  Color Palette   × 10%
) / 100

See docs/matching-algorithm.md for full details.


Getting Started

Prerequisites

  • Node.js 18+
  • Expo CLI
  • iOS Simulator (Xcode) or physical iPhone
  • Supabase project

Environment Variables

Create a .env file in the root:

EXPO_PUBLIC_SUPABASE_URL=your_supabase_project_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

Install & Run

# Install dependencies
npm install

# Start development server
npm start

# Run on iOS simulator
npm run ios

Database Setup

# Install Supabase CLI
npm install -g supabase

# Link to your project
supabase link --project-ref your-project-ref

# Run migrations
supabase db push

Edge Functions

# Deploy push notification functions
supabase functions deploy send-like-notification
supabase functions deploy send-message-notification
supabase functions deploy send-approval-notification

Set the following secrets in your Supabase project:

  • EXPO_ACCESS_TOKEN

Documentation

Document Description
docs/matching-algorithm.md Matching score calculation
docs/signup-integration.md Auth & onboarding flow
docs/push-notification.md Push notification system
docs/photo-system.md Photo upload & reveal system
docs/user-block.md Block & report features
docs/app-config.md Remote config (force update, maintenance)
docs/DATABASE_SCHEMA.md Full database schema

License

MIT

About

fitting-app made with ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors