Contribution Guidelines - bounswe/bounswe2025group5 GitHub Wiki

As a team of 10 contributors working on this project, having a common set of Git guidelines helps us stay organized and consistent. Following the same structure for commits and pull requests makes it much easier to trace contributions, understand changes, and collaborate efficiently. These shared practices ensure that everyone’s work integrates smoothly and the project history remains clear and maintainable over time.

Commits

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of.

To keep our project clean, traceable, and easy to maintain, we follow Conventional Commits and structured Pull Request workflows.

Format

<type>(optional scope): <short summary>

Example

feat(backend): add email verification for signup

Types

We need to specify the type of the commit to indicate what kind of work we done:

Type Purpose
feat A new feature or enhancement
fix A bug fix
docs Documentation changes only
refactor Code restructuring without behavior change
test Adding or updating tests
chore Maintenance tasks (build, CI, deps, etc.)

Scope

You can add a scope in parentheses to specify which part of the codebase is affected:

Example

feat(mobile): fix(frontend): docs(devops):

Description

  • Use imperative mood: “add”, not “added” or “adds”.
  • Keep the subject under 72 characters.
  • If you need a longer explanation, add a blank line before the description:

Example

feat(backend): implement new task scheduling system

This change introduces a new scheduling mechanism that improves job prioritization
and reduces latency under load.

Branches

Use descriptive branch names to indicate purpose and type, and do not forget to delete the branch after a successful merge.

Type Format Example
Feature feature/short-description feature/add-user-profile
Bug fix fix/short-description fix/login-redirect
Documentation docs/short-description docs/api-guide
Refactor refactor/short-description refactor/job-service

Avoid genering names like patch, update or temp

Main, Develop and Feature Branches

  • The develop branch will merge to the main branch periodically with being sure about everything works as expected in develop.
  • The features branches will be opened from develop for all of the teams.

PR workflow

Follow these steps to open a clean and reviewable PR.

Step 1: Create your branch

git checkout -b feature/add-dashboard

Step 2: Make commits

Use conventional commit messages

git add .
git commit -m "feat(frontend): add challenge visualization page"

Step 3: Push the branch

git push origin feature/add-dashboard

Step 4: Open the Pull Request

On GitHub:

  1. Open your branch and click “Compare & pull request”.
  2. Use a clear PR title, matching the main commit: feat(frontend): add challenge visualization page
  3. In the PR description:
    • Explain what you changed and why.
    • Reference related issues (e.g., Closes #42).
⚠️ **GitHub.com Fallback** ⚠️