Welcome! 👋 This guide outlines how to contribute effectively to projects under the organization.
Our goal is to simulate real-world collaborative software development using Git, Agile methodologies, and best practices in software engineering.
Before contributing:
- Fork the repository or clone if you're a member.
- Read the
README.mdto understand the purpose and setup. - Install dependencies and verify that the project builds/runs/tests properly.
- Create a new branch:
git checkout -b feat/your-feature-nameWe follow a simplified Gitflow workflow:
main: production-ready codedev: current development versionfeat/*: new featuresrefactor/*: refactoring code to improve style/performancefix/*: bugfixesdocs/*: documentation updatestest/*: test-related changes
Always branch from dev, and submit Pull Requests (PRs) into dev.
Use Conventional Commits:
<type>(scope): short description
Examples:
feat(auth): add OAuth2 login flowfix(api): handle null pointer in responsedocs(readme): update project description
Types:
feat→ new featurefix→ bugfixdocs→ documentation onlystyle→ formatting, no logic changerefactor→ code restructuringtest→ adding/missing testschore→ maintenance tasks
To automatically close related issues when a PR is merged, reference them directly in the commit message or PR description using keywords like:
fixes #123closes #123resolves #123
Example:
fix(login): redirect after token refresh (fixes #42)
You can also mention the issue in the Pull Request description:
This PR adds support for dark mode toggle.
Closes #98.For more details, see: GitHub Docs – Linking a pull request to an issue
- Open PRs from a feature branch to
dev. - Link related issues in the PR description.
- Request at least one review before merging.
- PR titles should match Conventional Commits.
Use GitHub Issues to track bugs, tasks, and ideas. Apply appropriate labels:
bug,enhancement,documentation,question,good first issue, etc.
Every project must have:
README.md: overview, installation, usageLICENSE: use MIT or other suitable open licenseCONTRIBUTING.md: copied or linked from this one
We follow Scrum roles where applicable:
- Scrum Master: facilitates workflow
- Product Owner: manages backlog and priorities
- Developers: execute and document features
Projects should use GitHub Projects (Scrum board) to manage tasks.
Happy coding! 🎓
For questions, contact the repository maintainers or @felipeadeildo.