Skip to main content

Contributing Guidelines

Welcome!

Thank you for considering contributing to Smart Academic Hub!

How to Contribute

Reporting Bugs

  1. Check if bug already reported
  2. Use bug report template
  3. Include reproduction steps
  4. Provide system information
  5. Add relevant screenshots/logs

Suggesting Features

  1. Check existing feature requests
  2. Use feature request template
  3. Explain use case and benefits
  4. Provide examples if possible

Code Contributions

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Write/update tests
  5. Follow code standards
  6. Submit a pull request

Development Workflow

1. Setup Development Environment

# Clone your fork
git clone https://github.com/your-username/SmartAcademicHub.git
cd SmartAcademicHub

# Install dependencies
cd backend && composer install
cd ../frontend && npm install
cd ../mobile && npm install

2. Create Feature Branch

git checkout -b feature/your-feature-name

3. Make Changes

  • Write clean, readable code
  • Follow coding standards
  • Add/update tests
  • Update documentation

4. Commit Changes

Use conventional commits:

git commit -m "feat: add student search functionality"
git commit -m "fix: resolve authentication bug"
git commit -m "docs: update API documentation"

5. Push and Create PR

git push origin feature/your-feature-name

Then create a pull request on GitHub.

Pull Request Guidelines

PR Checklist

  • Code follows project standards
  • Tests pass
  • New tests added for new features
  • Documentation updated
  • Commit messages are clear
  • No merge conflicts
  • PR description is complete

PR Description

Include:

  • What changes were made
  • Why changes were needed
  • How to test the changes
  • Screenshots (if UI changes)
  • Related issues

Code Review Process

  1. Automated checks run first
  2. Maintainers review code
  3. Address review feedback
  4. Get approval from maintainer
  5. PR merged to main branch

Community

  • Be respectful and inclusive
  • Help others learn and grow
  • Provide constructive feedback
  • Follow code of conduct

Questions?

  • Open a discussion on GitHub
  • Check existing documentation
  • Ask in community channels