updates to docs and also profile
6.9 KiB
Contributing to BetterSEQTA+
Published version: docs.betterseqta.org/contributing/
Thank you for your interest in contributing to BetterSEQTA+! This document provides guidelines and instructions for contributing to the project.
Table of Contents
- Code of Conduct
- Getting Started
- Contributing Code
- Reporting Bugs
- Suggesting Features
- Writing Documentation
- Community
Code of Conduct
BetterSEQTA+ is committed to providing a welcoming and inclusive environment for all contributors. We expect all participants to adhere to our Code of Conduct, which promotes respectful and harassment-free interaction.
Key points:
- Be respectful and inclusive
- Focus on what is best for the community
- Show empathy towards other community members
- Be open to constructive feedback
Getting Started
Setting Up Your Development Environment
-
Fork the Repository
Start by forking the BetterSEQTA+ repository to your GitHub account.
-
Clone Your Fork
git clone https://github.com/yourusername/betterseqta-plus.git cd betterseqta-plus -
Install Dependencies
npm install -
Set Up Development Environment
npm run dev -
Install in Chrome/Firefox
Follow the installation instructions to load the development version into your browser.
Project Structure
Understanding the project structure will help you navigate the codebase:
betterseqta-plus/
├── src/ # Source code
│ ├── plugins/ # Plugin system
│ │ ├── built-in/ # Built-in plugins
│ │ ├── core/ # Plugin core functionality
│ ├── settings/ # Settings system
│ ├── utils/ # Utility functions
│ ├── extension/ # Browser extension code
├── docs/ # Documentation
├── test/ # Test files
├── dist/ # Build output (generated)
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # Project README
Contributing Code
Branching Strategy
We follow a simple branching strategy:
main- The main development branchfeature/*- Feature branchesbugfix/*- Bug fix branchesdocs/*- Documentation branches
Always create a new branch for your changes:
git checkout -b feature/my-new-feature
Pull Request Process
-
Keep PRs Focused
Each pull request should address a single concern. If you're working on multiple features, create separate PRs for each.
-
Write Clear Commit Messages
Follow the conventional commits format:
feat: add new feature fix: resolve bug with timetable docs: update installation instructions -
Update Documentation
If your changes require documentation updates, include them in the same PR.
-
Run Tests
Make sure all tests pass before submitting your PR:
npm test -
Submit Your PR
When you're ready, push your branch and create a pull request on GitHub.
-
Code Review
All PRs will be reviewed by maintainers. Be responsive to feedback and make requested changes.
-
Merge
Once approved, a maintainer will merge your PR.
Coding Standards
We follow TypeScript best practices and have a consistent code style:
-
Use TypeScript
All new code should be written in TypeScript with proper typing.
-
Follow Existing Patterns
Match the coding style of the existing codebase.
-
Write Tests
Add tests for new features and bug fixes.
-
Document Your Code
Add comments for complex logic and JSDoc comments for functions.
-
Use Linters
We use ESLint and Prettier. Run them before submitting your PR:
npm run lint npm run format
Reporting Bugs
If you find a bug, please report it by creating an issue on GitHub:
-
Search Existing Issues
Check if the bug has already been reported.
-
Use the Bug Report Template
Fill in all sections of the bug report template:
- Description
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Environment (browser, OS, etc.)
-
Be Specific
The more details you provide, the easier it will be to fix the bug.
Suggesting Features
We welcome feature suggestions! To suggest a new feature:
-
Search Existing Suggestions
Check if your idea has already been suggested.
-
Use the Feature Request Template
Fill in all sections of the feature request template:
- Description
- Use case
- Potential implementation
- Alternatives considered
-
Be Patient
Feature requests are evaluated based on alignment with project goals, feasibility, and maintainer bandwidth.
Writing Documentation
Good documentation is crucial for the project. To contribute to documentation:
-
Identify Gaps
Look for areas where documentation is missing or unclear.
-
Follow Documentation Style
Maintain a consistent style and format.
-
Use Clear Language
Write in simple, clear English. Avoid jargon when possible.
-
Include Examples
Code examples and screenshots help users understand.
-
Submit a PR
Follow the same process as code contributions, but create a branch with a
docs/prefix.
Community
Join our community channels to discuss the project, get help, and connect with other contributors:
- Discord Server: Join our Discord
- GitHub Discussions: For longer-form conversations
- GitHub Issues: For bug reports and feature requests
Creating Plugins
If you're interested in creating plugins for BetterSEQTA+, check out our plugin development guides:
Recognition
Contributors are recognized in several ways:
- CONTRIBUTORS.md: All contributors are listed in this file
- Release Notes: Significant contributions are highlighted in release notes
- Community Recognition: Regular shout-outs in community channels
Questions?
If you have any questions about contributing, please:
- Check the documentation
- Ask in the Discord server
- Open a GitHub Discussion
Thank you for contributing to BetterSEQTA+! Your efforts help make SEQTA better for students and teachers everywhere.