Skip to main content

Contributing to CHASE

AI-Generated Content

This documentation page was initially generated by AI to bootstrap the documentation structure. Content may be incomplete or contain inaccuracies. We welcome contributions to improve it.

Thank you for your interest in contributing to CHASE! This guide will help you get started.

Ways to Contribute

  • Bug Reports - Report issues you encounter
  • Feature Requests - Suggest new features
  • Code Contributions - Submit pull requests
  • Documentation - Improve these docs
  • Testing - Help test new releases

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a branch for your changes
  4. Make your changes following our guidelines
  5. Submit a pull request

Development Workflow

Branch Naming

Use descriptive branch names:

  • feature/speaker-list-improvements
  • fix/voting-count-bug
  • docs/chair-guide-update

Commit Messages

Write clear commit messages:

feat: add yield to questions functionality

- Implement yield options in speaker controls
- Add timer handling for question period
- Update UI to show yield status

Follow Conventional Commits format:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • refactor: - Code refactoring
  • test: - Adding tests
  • chore: - Maintenance tasks

Pull Requests

When submitting a PR:

  1. Fill out the PR template
  2. Link related issues
  3. Ensure tests pass
  4. Request review from maintainers

Code Style

TypeScript

  • Use TypeScript for all new code
  • Enable strict mode
  • Define types explicitly for function parameters

React/Svelte

  • Use functional components
  • Follow component naming conventions
  • Keep components focused and small

Formatting

We use Prettier for code formatting:

bun run format

Lint your code:

bun run lint

Testing

Writing Tests

  • Add tests for new features
  • Update tests when fixing bugs
  • Aim for meaningful coverage, not 100%

Running Tests

bun test

Code Review Process

  1. Automated checks must pass
  2. At least one maintainer approval required
  3. Address all review comments
  4. Squash commits if requested

Community Guidelines

  • Be respectful and inclusive
  • Help others learn
  • Give constructive feedback
  • Celebrate contributions

Getting Help

  • GitHub Issues - For bugs and features
  • Discussions - For questions and ideas
  • Email - For private matters

License

By contributing, you agree that your contributions will be licensed under the AGPL-3.0 license.