Skip to main content

Developer Initial Setup

Welcome to FindU! This guide will help you set up your development environment for working with the FindU platform.

Prerequisites

Before you begin, ensure you have the following installed:
  • Git (v2.30+)
  • Node.js (v18+ LTS recommended)
  • Python (3.9-3.11 for matching algorithm)
  • Xcode (for iOS development on macOS)
  • Railway CLI (optional, for deployment)
  • Claude Code (optional, for AI-assisted development)
Pro tip: If you’re on macOS, you can install most prerequisites using Homebrew:
brew install git node [email protected]
brew install --cask railway  # Optional for deployment
# Xcode from App Store
Database Access: You’ll manage the database through the Supabase web dashboard. No CLI tools required!

Getting Started

Since FindU uses multiple repositories, you’ll need to set up each component individually:

1. Create a workspace directory

mkdir ~/findu
cd ~/findu

2. Clone the repositories you need

# Core repositories
git clone https://github.com/findu-app/ios_app.git
git clone https://github.com/findu-app/web_app.git
git clone https://github.com/findu-app/matching-algorithm.git

# Data and documentation
git clone https://github.com/findu-app/data_scraping.git
git clone https://github.com/findu-app/docs.git

3. Switch to dev branches

cd ios_app && git checkout dev && cd ..
cd web_app && git checkout dev && cd ..
cd matching-algorithm && git checkout dev && cd ..
cd data_scraping && git checkout dev && cd ..

4. Set up each component

Follow the README in each repository for specific setup instructions.

Repository Structure

After cloning, your workspace will look like:
~/findu/
├── ios_app/           # iOS mobile app (Swift/SwiftUI)
├── web_app/           # Partner dashboard (React/TypeScript)
├── matching-algorithm/ # ML matching engine (Python/FastAPI)
├── data_scraping/     # Data collection scripts
└── docs/              # Documentation (this site!)
Each repository has its own:
  • README with setup instructions
  • Environment configuration
  • Dependencies and tooling

Environment Configuration

Each repository requires its own environment configuration:

Web App

Create web_app/.env:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_key
VITE_ENV=development

iOS App

Create ios_app/Secrets.xcconfig:
SUPABASE_URL = your_supabase_url
SUPABASE_ANON_KEY = your_anon_key

Matching Algorithm

Create matching-algorithm/.env:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_anon_key
Never commit environment files to version control! They contain sensitive credentials.

Next Steps

Troubleshooting

Common Issues

Make sure you’ve created the .env files in each repository with the correct credentials from your Supabase project.
Verify:
  • Your Supabase project is active
  • Credentials are correct
  • RLS policies allow access
The matching algorithm requires Python 3.9-3.11. Python 3.13 has compatibility issues with some dependencies. Use pyenv to manage Python versions if needed.
Some repositories might not have a dev branch yet. In that case, continue using main or create a dev branch from main.
Use Node.js 18+ LTS for best compatibility with the web app.

Getting Help

  • Slack: Join #dev-help for quick questions
  • GitHub Issues: Report bugs or request features
  • Documentation: You’re already here! 🎉

Ready to start building? Head to the workflow guide to learn common development patterns.