Skip to content

Ugur22/letsMakeFriendsV2

Repository files navigation

Let's Make Friends

A gamified mobile app designed to help people overcome social anxiety and build meaningful friendships through guided tasks, progress tracking, and educational content.

Overview

Let's Make Friends takes users on a transformative 9-chapter journey from social anxiety to becoming a "social butterfly." Each chapter contains 15 progressive tasks that gradually build confidence and social skills, with unlockable educational content along the way.

Features

  • 9 Progressive Chapters - From "Pity Party" (self-acceptance) to "Social Butterfly" (helping others)
  • 135 Guided Tasks - Each task builds on the previous, with XP rewards
  • Unlockable Content - Articles, tips, and exercises unlocked every 5 completed tasks
  • Progress Tracking - Visual progress bars and XP system
  • Personal Diary - Reflect on your journey with mood tracking
  • Selfie Verification - Photo proof for task completion (accountability)

Tech Stack

  • Frontend: React Native with Expo SDK 54
  • Backend: Supabase (PostgreSQL + Auth)
  • State Management: Zustand
  • UI Components: Custom components with Tamagui
  • Navigation: Expo Router (file-based routing)
  • Fonts: PlayfairDisplay family

Project Structure

letsmakeFriendsV2/
├── app/                      # Expo Router screens
│   ├── (auth)/              # Authentication screens
│   │   ├── sign-in.tsx
│   │   ├── sign-up.tsx
│   │   └── welcome.tsx
│   ├── (tabs)/              # Main tab navigation
│   │   ├── index.tsx        # Home screen
│   │   ├── diary.tsx        # Diary screen
│   │   └── profile.tsx      # Profile screen
│   ├── chapter/[id]/        # Dynamic chapter routes
│   │   └── index.tsx        # Chapter detail screen
│   ├── rewards/             # Unlockables screen
│   │   └── index.tsx
│   └── _layout.tsx          # Root layout
├── src/
│   ├── components/
│   │   └── ui/              # Reusable UI components
│   │       ├── Button.tsx
│   │       ├── Card.tsx
│   │       ├── Input.tsx
│   │       └── ProgressBar.tsx
│   ├── lib/
│   │   └── supabase.ts      # Supabase client & helpers
│   ├── stores/              # Zustand stores
│   │   ├── authStore.ts
│   │   ├── chapterStore.ts
│   │   ├── diaryStore.ts
│   │   └── unlockablesStore.ts
│   ├── theme/
│   │   ├── tokens.ts        # Design tokens (colors, spacing, etc.)
│   │   └── fonts.ts         # Font configuration
│   └── types/
│       └── database.ts      # TypeScript types
├── supabase/
│   └── migrations/          # Database migrations
│       ├── 00001_initial_schema.sql
│       ├── 00002_rls_policies.sql
│       ├── 00003_auto_create_profile.sql
│       ├── 00004_seed_chapters_tasks.sql
│       ├── 00005_start_chapter_function.sql
│       ├── 00006_auto_start_chapter1.sql
│       ├── 00007_fix_chapter_completion.sql
│       ├── 00008_unlock_achievements.sql
│       └── 00009_expand_chapters_tasks.sql
└── assets/
    └── fonts/               # PlayfairDisplay font files

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI (npm install -g expo-cli)
  • Supabase account

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/letsmakeFriendsV2.git
    cd letsmakeFriendsV2
  2. Install dependencies

    npm install
  3. Set up Supabase

    • Create a new Supabase project
    • Run all migrations in supabase/migrations/ in order
    • Update the Supabase URL and anon key in src/lib/supabase.ts
  4. Start the development server

    npx expo start
  5. Run on device/simulator

    • Press i for iOS simulator
    • Press a for Android emulator
    • Scan QR code with Expo Go app for physical device

Database Schema

Tables

Table Description
profiles User profiles with XP and settings
chapters 9 chapters with name, description
tasks 15 tasks per chapter with XP rewards
user_chapters User's chapter progress (locked/in_progress/completed)
user_tasks User's task progress with selfie URLs
unlockables Educational content unlocked by progress
user_unlockables User's unlocked content
diary_entries Personal journal entries with mood

Key Functions

  • start_chapter(user_id, chapter_id) - Initialize a chapter for a user
  • complete_task(user_id, task_id, selfie_url) - Complete a task, award XP, unlock content

Design System

Colors

Token Value Usage
primary #E8CA6F Buttons, highlights, progress
tertiary #34495e Text, headings
background #FDFBF7 Main background
success #7FB069 Completed states
error #E63946 Error states

Typography

All text uses the PlayfairDisplay font family:

  • Regular, Medium, SemiBold, Bold, Black variants
  • Italic versions available

The Journey

Chapter Progression

  1. Pity Party - Self-acceptance and comfort with being alone
  2. Somewhat Shy - Basic interactions (smiling, small talk)
  3. Progress - Starting conversations, attending events
  4. Friends? - Building initial friendships
  5. Getting Better - Group activities, deeper connections
  6. Having Friends - Maintaining and nurturing friendships
  7. Friend Group Acquired - Managing friend groups
  8. Dinner Party - Hosting and attending social events
  9. Social Butterfly - Helping others, leadership

Unlockables

Every 5 completed tasks unlock educational content:

  • Articles - Deep dives into social psychology
  • Tips - Practical advice for social situations
  • Exercises - Activities to practice skills

Contributing

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

License

This project is proprietary. All rights reserved.

Support

For issues or questions, please open a GitHub issue or contact the development team.


Built with love to help people connect.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors