Contributing Guidelines
Welcome!
Thank you for considering contributing to Smart Academic Hub!
How to Contribute
Reporting Bugs
- Check if bug already reported
- Use bug report template
- Include reproduction steps
- Provide system information
- Add relevant screenshots/logs
Suggesting Features
- Check existing feature requests
- Use feature request template
- Explain use case and benefits
- Provide examples if possible
Code Contributions
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests
- Follow code standards
- 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
- Automated checks run first
- Maintainers review code
- Address review feedback
- Get approval from maintainer
- 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