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 ​