A gamified mobile app designed to help people overcome social anxiety and build meaningful friendships through guided tasks, progress tracking, and educational content.
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.
- 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)
- 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
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
- Node.js 18+
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - Supabase account
-
Clone the repository
git clone https://github.com/yourusername/letsmakeFriendsV2.git cd letsmakeFriendsV2 -
Install dependencies
npm install
-
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
-
Start the development server
npx expo start
-
Run on device/simulator
- Press
ifor iOS simulator - Press
afor Android emulator - Scan QR code with Expo Go app for physical device
- Press
| 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 |
start_chapter(user_id, chapter_id)- Initialize a chapter for a usercomplete_task(user_id, task_id, selfie_url)- Complete a task, award XP, unlock content
| Token | Value | Usage |
|---|---|---|
primary |
#E8CA6F |
Buttons, highlights, progress |
tertiary |
#34495e |
Text, headings |
background |
#FDFBF7 |
Main background |
success |
#7FB069 |
Completed states |
error |
#E63946 |
Error states |
All text uses the PlayfairDisplay font family:
- Regular, Medium, SemiBold, Bold, Black variants
- Italic versions available
- Pity Party - Self-acceptance and comfort with being alone
- Somewhat Shy - Basic interactions (smiling, small talk)
- Progress - Starting conversations, attending events
- Friends? - Building initial friendships
- Getting Better - Group activities, deeper connections
- Having Friends - Maintaining and nurturing friendships
- Friend Group Acquired - Managing friend groups
- Dinner Party - Hosting and attending social events
- Social Butterfly - Helping others, leadership
Every 5 completed tasks unlock educational content:
- Articles - Deep dives into social psychology
- Tips - Practical advice for social situations
- Exercises - Activities to practice skills
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary. All rights reserved.
For issues or questions, please open a GitHub issue or contact the development team.
Built with love to help people connect.