Thank you for your interest in contributing to PiDeck! This guide will help you get started with contributing to the project.
- Code of Conduct
- Getting Started
- Development Setup
- Contributing Guidelines
- Pull Request Process
- Bug Reports
- Feature Requests
This project adheres to a code of conduct that we expect all contributors to follow. Please be respectful and constructive in all interactions.
- Node.js 18+ and npm
- Git
- Basic knowledge of React, TypeScript, and Express.js
-
Fork the repository
# Click the "Fork" button on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/PiDeck.git cd PiDeck
-
Add upstream remote
git remote add upstream https://github.com/hexawulf/PiDeck.git
-
Install dependencies
npm install
-
Start development server
npm run dev
- TypeScript: Use TypeScript for all new code
- Formatting: Use Prettier for code formatting
- Linting: Follow ESLint rules
- Naming: Use descriptive variable and function names
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, documented code
- Add tests for new functionality
- Update documentation as needed
-
Commit your changes
git add . git commit -m "Add feature: brief description"
-
Keep your branch updated
git fetch upstream git rebase upstream/main
-
Push and create PR
git push origin feature/your-feature-name
Use clear and descriptive commit messages:
type(scope): brief description
Longer description if needed
- Detail 1
- Detail 2
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code refactoringtest: Adding testschore: Maintenance tasks
-
Test your changes
npm run build npm run test -
Update documentation
- Update README.md if needed
- Add/update JSDoc comments
- Update CHANGELOG.md
-
Check code quality
npm run lint npm run format
- Clear title and description
- Reference related issues
- Include screenshots for UI changes
- Add tests for new functionality
- Ensure all CI checks pass
When creating a PR, use this template:
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
## Related Issues
Fixes #(issue number)
## Testing
- [ ] Tested locally
- [ ] Added unit tests
- [ ] Manual testing completed
## Screenshots (if applicable)
Add screenshots here
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] Tests added/updated- Check existing issues
- Ensure you're using the latest version
- Try to reproduce the issue
**Describe the bug**
A clear description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. See error
**Expected behavior**
What you expected to happen.
**Screenshots**
If applicable, add screenshots.
**Environment:**
- OS: [e.g. Ubuntu 20.04]
- Node.js version: [e.g. 18.16.0]
- Browser: [e.g. Chrome 91]
- PiDeck version: [e.g. 1.0.0]
**Additional context**
Any other context about the problem.**Is your feature request related to a problem?**
A clear description of what the problem is.
**Describe the solution you'd like**
A clear description of what you want to happen.
**Describe alternatives you've considered**
Other solutions you've considered.
**Additional context**
Add any other context or screenshots.- Frontend: React components in
client/src/components - Backend: Express routes in
server/routes.ts - Shared: Types and schemas in
shared/schema.ts - Styling: TailwindCSS with component variants
- Write unit tests for new functions
- Add integration tests for API endpoints
- Test UI components with user interactions
- Use React Query for API state management
- Implement proper loading states
- Optimize bundle size
- Cache expensive operations
- Validate all inputs
- Use parameterized queries
- Implement proper authentication
- Follow OWASP guidelines
- Mobile responsiveness improvements
- Additional system metrics
- Enhanced log parsing and filtering
- Performance optimizations
- Multi-user authentication
- Plugin system for custom integrations
- Advanced charting and visualization
- Configuration management UI
- UI/UX improvements
- Documentation updates
- Bug fixes
- Code refactoring
# Backend debugging
DEBUG=express:* npm run dev
# View logs
tail -f /home/zk/logs/*.log# Generate migration
npm run db:generate
# Push changes
npm run db:push# Run all tests
npm test
# Run specific test
npm test -- --grep "test name"
# Watch mode
npm test -- --watchContributors will be recognized in:
- README.md contributors section
- CHANGELOG.md for significant contributions
- GitHub releases notes
- Open a GitHub Discussion
- Join our community chat (link coming soon)
- Email the maintainers
Thank you for contributing to PiDeck! 🎉