Thank you for your interest in contributing to InfraBoard! This guide will help you get started with contributing to our project.
mindmap
root((Contributing))
Development
Setup
Workflow
Standards
Documentation
Code
API
User Guide
Testing
Unit Tests
Integration
E2E
Community
Issues
PRs
Reviews
flowchart LR
A[Fork Repository] --> B[Clone Locally]
B --> C[Install Dependencies]
C --> D[Setup Environment]
D --> E[Start Development]
-
Fork and Clone
git clone https://github.com/YOUR_USERNAME/InfraBoard.git cd InfraBoard
-
Install Dependencies
npm install
-
Environment Setup
cp .env.example .env.local # Configure your environment variables
-
Start Development Server
npm run dev
gitGraph
commit
branch develop
checkout develop
commit
branch feature
checkout feature
commit
commit
checkout develop
merge feature
branch release
checkout release
commit
checkout main
merge release
- Feature:
feature/your-feature-name
- Bug Fix:
fix/issue-description
- Documentation:
docs/what-you-documented
- Performance:
perf/what-you-optimized
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write clean, maintainable code
- Follow our coding standards
- Add tests for new features
-
Commit Changes
git add . git commit -m "feat: add new feature"
Commit Message Format:
type(scope): subject body footer
Types:
- feat: New feature
- fix: Bug fix
- docs: Documentation
- style: Formatting
- refactor: Code restructuring
- test: Adding tests
- chore: Maintenance
-
Push Changes
git push origin feature/your-feature-name
sequenceDiagram
participant D as Developer
participant R as Reviewer
participant M as Maintainer
D->>R: Submit PR
R->>D: Review Comments
D->>R: Address Comments
R->>M: Approve PR
M->>D: Merge PR
-
Title Format:
[Type] Brief description
-
Description Template:
## Description Brief description of changes ## Related Issue Fixes #(issue) ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Testing Describe tests you ran ## Screenshots (if applicable)
describe('Component/Feature', () => {
beforeEach(() => {
// Setup
})
it('should behave as expected', () => {
// Test
})
afterEach(() => {
// Cleanup
})
})
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Coverage report
npm run test:coverage
- Use JSDoc comments for functions
- Document complex logic
- Keep README files updated
- Document all endpoints
- Include request/response examples
- Note any authentication requirements
graph TD
A[Source Code] --> B[Components]
A --> C[Pages]
A --> D[Utils]
B --> E[UI Components]
B --> F[Features]
C --> G[Routes]
D --> H[Helpers]
- Follows coding standards
- Includes tests
- Documentation updated
- No linting errors
- Passes CI checks
- Reviewed by peers
- Optimize bundle size
- Minimize re-renders
- Use lazy loading
- Implement caching
-
Be Respectful
- Value diverse perspectives
- Use inclusive language
- Be constructive in feedback
-
Communication Channels
- GitHub Issues
- Pull Requests
- Project Discussions
-
Support
- Help others learn
- Share knowledge
- Be patient with newcomers
graph LR
A[Labels] --> B[Priority]
A --> C[Type]
A --> D[Status]
B --> E[High]
B --> F[Medium]
B --> G[Low]
C --> H[Bug]
C --> I[Feature]
C --> J[Documentation]
-
Version Bump
npm version patch|minor|major
-
Changelog Update
- Document changes
- Group by type
- Include migration guides
-
Release Creation
- Tag release
- Write release notes
- Deploy to production
Contributors will be:
- Added to CONTRIBUTORS.md
- Mentioned in release notes
- Recognized in project documentation
Remember to check our Code of Conduct and Templates for more information.
For any questions, feel free to open an issue or join our community discussions.