FindU Development Guide

This guide covers our development workflow, standards, and best practices for the FindU engineering team.

Repository Overview

web_app

React dashboard for partners
  • Partner analytics
  • Messaging interface
  • Profile management
  • Scholarship tools

ios_app

Native iOS app for students
  • College swiping
  • Student messaging
  • Profile creation
  • Social features

matching-algorithm

ML matching engine
  • Recommendation API
  • Learning algorithms
  • Performance optimization
  • Mobile endpoints

supabase

Backend infrastructure
  • Database schema
  • Edge Functions
  • Authentication
  • Real-time features

Development Process

1. Starting New Work

1

Check Current Sprint

  • Review sprint board for assigned tasks
  • Check with team lead for priorities
  • Understand acceptance criteria
2

Pull Latest Changes

Always start from updated dev branch:
git checkout dev
git pull origin dev
3

Create Feature Branch

Use descriptive branch names:
git checkout -b feature/add-scholarship-filters
git checkout -b fix/profile-creation-bug
git checkout -b chore/update-dependencies

2. Making Changes

Always follow our branch strategy:
Never branch from or PR to main directly. Always use dev as your base.

3. Code Standards

// Good: Clear naming, proper types
interface StudentProfile {
  id: string;
  name: string;
  graduationYear: number;
}

// Good: Descriptive function names
export function calculateMatchScore(
  student: StudentProfile,
  school: School
): number {
  // Implementation
}

4. Testing

Before submitting your PR:
  • Run existing tests
  • Add tests for new functionality
  • Test manually in the app
  • Check for console errors
  • Verify mobile responsiveness (if web)

5. Pull Request

Use our simplified PR template:
## What does this PR do?
[Brief description]

## Type of change
- Bug fix / New feature / Improvement

## How did you test this?
- [ ] I tested this locally
- [ ] Specific things I tested: [list them]

## Screenshots (if UI changes)
[Add screenshots]

Review Process

What happens after you open a PR:
1

Automated Checks

GitHub Actions will run:
  • Linting
  • Type checking
  • Security checks
  • Build verification
2

Code Review

Team members will review:
  • Code quality and standards
  • Architecture alignment
  • Performance impact
  • Security considerations
3

Testing

  • Verify changes work locally
  • Test on dev environment
  • Check for regressions
  • Mobile app: test on devices
4

Merge & Deploy

Once approved:
  • PR merged to dev
  • Auto-deployed to dev environment
  • Monitor for issues
  • Plan production release

Team Communication

Daily Standup

Share progress and blockers
  • What you completed
  • What you’re working on
  • Any blockers

Technical Help

Getting unstuck:
  • Ask in #dev-help
  • Pair with teammates
  • Schedule 1:1 with lead

Design Decisions

For architecture questions:
  • Document in PR
  • Discuss in tech meeting
  • Create ADR if needed

Sprint Planning

Weekly planning:
  • Review upcoming work
  • Estimate tasks
  • Identify dependencies

Development Standards

Code Quality

  • Write clean, readable code
  • Add meaningful comments for complex logic
  • Keep functions small and focused
  • Follow DRY principles

Testing

  • Write tests for new features
  • Maintain existing test coverage
  • Test edge cases
  • Manual testing before PR

Documentation

  • Update README for significant changes
  • Document new APIs
  • Keep CLAUDE.md files current
  • Add inline documentation

Security

  • Never commit secrets
  • Follow security best practices
  • Review dependencies
  • Report vulnerabilities immediately

Deployment Process

1

Development

All feature work merges to dev branch
  • Automatically deploys to dev environment
  • Available for team testing
2

Staging

Dev branch serves as staging
  • Full testing before production
  • Performance verification
3

Production

Weekly production releases
  • Dev → Main merge
  • Deployment automation
  • Post-deploy verification
Remember: We’re building something amazing together. Quality over speed, communication over assumptions.