Skip to content

Contributing to Family Shapes

Thank you for your interest in contributing to the Family Shapes project! This guide will help you understand how to contribute effectively.

Table of Contents

  1. Code of Conduct
  2. Getting Started
  3. Development Workflow
  4. Pull Request Process
  5. Documentation
  6. Testing
  7. Database Changes
  8. Style Guidelines
  9. Community

Code of Conduct

We are committed to providing a welcoming and inclusive environment for all contributors. Please be respectful and considerate of others.

Getting Started

  1. Fork the Repository: Create your own fork of the repository
  2. Clone the Repository: Clone your fork to your local machine
  3. Set Up Development Environment: Follow the Getting Started Guide
  4. Create a Branch: Create a branch for your changes

Development Workflow

  1. Check Project Priorities: Review the ROADMAP.md and Project Priorities to ensure your work aligns with current priorities
  2. Choose an Issue: Select an issue to work on from the issue tracker
  3. Create a Branch: Create a branch with a descriptive name (e.g., feature/add-donor-privacy-controls)
  4. Make Changes: Implement your changes following the project's coding standards
  5. Write Tests: Add tests for your changes
  6. Update Documentation: Update documentation to reflect your changes
  7. Commit Changes: Make small, focused commits with clear messages
  8. Push Changes: Push your changes to your fork
  9. Create a Pull Request: Open a pull request to the main repository

IMPORTANT: Always check the "Immediate Priorities" section in the ROADMAP.md before starting any work to ensure your contributions align with the project's current focus.

Pull Request Process

  1. Fill Out the PR Template: Provide a clear description of your changes
  2. Link Related Issues: Reference any related issues
  3. Pass CI Checks: Ensure all automated checks pass
  4. Request Review: Request review from appropriate team members
  5. Address Feedback: Respond to feedback and make necessary changes
  6. Get Approval: Obtain approval from at least one reviewer
  7. Merge: Once approved, your PR will be merged

For detailed guidelines, use this section and the PR review process in AGENTS.md.

Code Review

Code review happens as part of PRs. We currently don't maintain a separate guide.

Documentation

Documentation is a crucial part of the project. When making changes:

  1. Update Existing Documentation: Update any documentation affected by your changes
  2. Add New Documentation: Create new documentation for new features
  3. Follow Documentation Standards: Adhere to the Documentation Guidelines

Testing

All code changes should include appropriate tests:

  1. Unit Tests: Test individual components and functions
  2. Integration Tests: Test interactions between components
  3. End-to-End Tests: Test complete user flows

For detailed testing guidelines, see the docs in Development.

Database Changes

Database changes must follow our migration workflow:

  1. Create Migrations: Use make db/diff to create migrations
  2. Test Migrations: Verify migrations with make db/reset and make db/check
  3. Update Types: Regenerate types with make db/types

For detailed database guidelines, see Database Guidelines.

Style Guidelines

Follow the project's style guidelines:

  1. Code Formatting: Use Prettier for code formatting
  2. Linting: Follow ESLint rules
  3. TypeScript: Use TypeScript features appropriately
  4. Component Structure: Follow the project's component structure

For detailed style guidelines, see Documentation Guidelines.

Community

Join our community channels to connect with other contributors:

  • GitHub Discussions: For feature discussions and questions
  • Issue Tracker: For bug reports and feature requests
  • Pull Requests: For code contributions

Additional Resources