> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinfindu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Initial Setup

> Get started with FindU development in minutes

# 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)

<Check>
  **Pro tip:** If you're on macOS, you can install most prerequisites using Homebrew:

  ```bash theme={null}
  brew install git node python@3.11
  brew install --cask railway  # Optional for deployment
  # Xcode from App Store
  ```
</Check>

<Note>
  **Database Access**: You'll manage the database through the Supabase web dashboard. No CLI tools required!
</Note>

## Getting Started

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

### 1. Create a workspace directory

```bash theme={null}
mkdir ~/findu
cd ~/findu
```

### 2. Clone the repositories you need

```bash theme={null}
# 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

```bash theme={null}
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
```

<Warning>
  Never commit environment files to version control! They contain sensitive credentials.
</Warning>

## Next Steps

<CardGroup cols={2}>
  <Card title="Architecture Overview" icon="sitemap" href="/architecture">
    Understand how components work together
  </Card>

  <Card title="Database Guide" icon="database" href="/database/overview">
    Learn about the Supabase setup
  </Card>

  <Card title="Workflow Guide" icon="code" href="/developer/workflow-guide">
    Common development workflows
  </Card>

  <Card title="API Reference" icon="plug" href="/api-reference/introduction">
    Explore available APIs
  </Card>
</CardGroup>

## Troubleshooting

### Common Issues

<AccordionGroup>
  <Accordion title="Missing environment variables">
    Make sure you've created the `.env` files in each repository with the correct credentials from your Supabase project.
  </Accordion>

  <Accordion title="Supabase connection errors">
    Verify:

    * Your Supabase project is active
    * Credentials are correct
    * RLS policies allow access
  </Accordion>

  <Accordion title="Python version issues">
    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.
  </Accordion>

  <Accordion title="Branch 'dev' not found">
    Some repositories might not have a dev branch yet. In that case, continue using main or create a dev branch from main.
  </Accordion>

  <Accordion title="Node version issues">
    Use Node.js 18+ LTS for best compatibility with the web app.
  </Accordion>
</AccordionGroup>

## 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](/developer/workflow-guide) to learn common development patterns.
