Thank you for your interest in contributing to onCare! This document provides guidelines for contributing to the project.
-
Fork the Repository
git clone https://github.com/your-username/Oncure.git cd Oncure -
Set Up Development Environment
- Follow the Development Instructions
- Read the Project Structure
- Review the Style Guide
-
Create a Branch
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-description
- Check existing issues and pull requests
- Discuss major changes in team meetings
- Assign yourself to issues
- Update project board/tracking system
- Follow the Style Guide
- Write clear, self-documenting code
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation if needed
- Run tests:
npm test(frontend) andgo test(backend) - Check code formatting:
npm run lint - Update relevant documentation
- Test deployment locally
-
Ensure your branch is up to date
git checkout main git pull origin main git checkout your-branch git rebase main
-
Push your changes
git push origin your-branch
-
Create Pull Request
- Use the provided PR template
- Include clear description of changes
- Reference related issues
- Add screenshots for UI changes
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Tests pass locally
- [ ] Manual testing completed
- [ ] Cross-browser testing (if applicable)
## Screenshots (if applicable)
Add screenshots for UI changes
## Related Issues
Closes #issue-number- Use functional components with hooks
- Follow the Style Guide
- Use TypeScript where possible
- Implement responsive design
- Add proper error handling
- Follow Go naming conventions
- Add proper error handling
- Write unit tests for new functions
- Document public functions
- Use consistent database patterns
- Create migrations for schema changes
- Test migrations on both SQLite and PostgreSQL
- Document any breaking changes
- Follow naming conventions
# Run tests
npm test
# Run linting
npm run lint
# Type checking
npm run type-check# Run tests
go test ./...
# Run with coverage
go test -cover ./...- Document all public functions
- Add inline comments for complex logic
- Update README if needed
- Create/update technical documentation
Use conventional commit format:
type(scope): description
Examples:
feat(auth): add user registration
fix(chat): resolve websocket connection issue
docs(readme): update installation instructions
- Don't commit directly to main branch
- Don't submit PRs without testing
- Don't ignore code review feedback
- Don't merge your own PRs
- Don't commit sensitive information (API keys, passwords)
bug: Something isn't workingenhancement: New feature or requestdocumentation: Improvements to documentationgood first issue: Good for newcomershelp wanted: Extra attention is neededpriority: high: High priority issuepriority: medium: Medium priority issuepriority: low: Low priority issue
- Technical Questions: Ask in team meetings or Slack
- Code Review: Tag relevant team members
- Urgent Issues: Contact project maintainers directly
- General Questions: Use GitHub Discussions
Contributors will be recognized in:
- README.md contributors section
- Release notes
- Project documentation
- Team meetings
Before submitting your first PR, make sure you have:
- Read this contributing guide
- Set up development environment
- Joined team communication channels
- Understood the project structure
- Reviewed the style guide
- Attended a team meeting
- Assigned yourself to an issue
- Automated Checks: CI/CD pipeline runs tests
- Code Review: At least one team member reviews
- Testing: Reviewer tests the changes
- Approval: Maintainer approves and merges
- Deployment: Changes deployed to staging/production
- Small, Focused Changes: Keep PRs small and focused
- Regular Communication: Update team on progress
- Ask Questions: Don't hesitate to ask for help
- Be Respectful: Follow team code of conduct
- Learn and Share: Share knowledge with team
Thank you for contributing to onCare! Together, we're building something meaningful for cancer patients and their families.