Comprehensive instructions for managing the OpenCare project using GitHub features like Projects, Issues, Labels, and Milestones.
- Project Board Setup
- Issue Labels & Categories
- Issue Templates
- Time Estimation Guidelines
- Workflow Process
- Milestone Management
- Tagging Best Practices
- Progress Tracking
- Quick Start for Contributors
- Additional Resources
Our project uses GitHub Projects for task management and workflow tracking. The project board is organized into the following columns:
| Column | Purpose | Description |
|---|---|---|
| Backlog | Task Planning | New issues and feature requests |
| To Do | Ready for Development | Approved and prioritized tasks |
| In Progress | Active Development | Tasks currently being worked on |
| Review | Code Review | Completed tasks awaiting review |
| Testing | Quality Assurance | Tasks in testing phase |
| Done | Completed | Successfully completed and deployed tasks |
- Automation: Set up automatic column transitions based on PR status
- Field Configuration: Add custom fields for story points, assignees, and due dates
- Views: Create different views (Table, Board, Timeline) for different team needs
- Filters: Use filters to focus on specific components or priorities
We use a comprehensive labeling system to categorize and prioritize issues effectively.
| Label | Color | Description | Usage |
|---|---|---|---|
priority: critical |
🔴 Red | Must be fixed immediately | Security issues, critical bugs |
priority: high |
🟠 Orange | Important for next release | Major features, significant bugs |
priority: medium |
🟡 Yellow | Normal priority | Regular features, minor bugs |
priority: low |
🟢 Green | Nice to have | Enhancements, documentation |
| Label | Color | Description | Usage |
|---|---|---|---|
type: bug |
🐛 Purple | Something isn't working | Error reports, unexpected behavior |
type: feature |
✨ Blue | New functionality | New features, enhancements |
type: documentation |
📚 Green | Documentation updates | README, API docs, guides |
type: enhancement |
🔧 Orange | Improvement to existing feature | UI/UX improvements, performance |
type: question |
❓ Gray | General questions | Support, clarification needed |
type: duplicate |
🔄 Gray | Issue already exists | Duplicate reports |
type: invalid |
❌ Red | Issue not applicable | Wrong repository, invalid bug |
| Label | Color | Description | Usage |
|---|---|---|---|
component: frontend |
🎨 Blue | Frontend (Next.js) related | UI components, pages, styling |
component: backend |
⚙️ Green | Backend (Spring Boot) related | APIs, services, database |
component: mobile |
📱 Purple | Mobile app related | React Native features |
component: database |
🗄️ Brown | Database related | Schema, migrations, queries |
component: infrastructure |
🏗️ Gray | DevOps, deployment | Docker, CI/CD, hosting |
component: security |
🔒 Red | Security related | Authentication, authorization |
| Label | Color | Description | Usage |
|---|---|---|---|
status: blocked |
🚫 Red | Cannot proceed | Waiting for dependency |
status: in-review |
👀 Blue | Under code review | PR submitted, awaiting review |
status: needs-info |
ℹ️ Yellow | Requires more information | Missing details, clarification |
status: wont-fix |
❌ Gray | Will not be implemented | Out of scope, deprecated |
| Label | Color | Description | Estimation |
|---|---|---|---|
difficulty: beginner |
🟢 Green | Good for new contributors | 1-2 hours |
difficulty: easy |
🟡 Yellow | Simple changes | 2-4 hours |
difficulty: medium |
🟠 Orange | Moderate complexity | 4-8 hours |
difficulty: hard |
🔴 Red | Complex implementation | 8-16 hours |
difficulty: expert |
⚫ Black | Very complex | 16+ hours |
| Label | Color | Description | Usage |
|---|---|---|---|
good first issue |
🟢 Green | Perfect for newcomers | Simple, well-documented tasks |
help wanted |
🟡 Yellow | Needs community help | Open for contribution |
sprint: current |
🔵 Blue | Current sprint focus | High priority for this sprint |
sprint: next |
🟣 Purple | Next sprint planning | Planning phase |
We use standardized issue templates to ensure consistency and completeness.
## 🐛 Bug Description
Brief description of the bug
## 🔍 Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
## ✅ Expected Behavior
What you expected to happen
## ❌ Actual Behavior
What actually happened
## 📱 Environment
- OS: [e.g., Windows 10, macOS, Ubuntu]
- Browser: [e.g., Chrome, Firefox, Safari]
- Version: [e.g., 22]
- Device: [e.g., Desktop, Mobile, Tablet]
## 📸 Screenshots
If applicable, add screenshots to help explain the problem
## 📝 Additional Context
Add any other context about the problem here
## 🔗 Related Issues
Link to any related issues or pull requests
## 📋 Labels
- [ ] `type: bug`
- [ ] `component: [frontend/backend/mobile/database]`
- [ ] `priority: [critical/high/medium/low]`
- [ ] `difficulty: [beginner/easy/medium/hard/expert]`## 🚀 Feature Description
Brief description of the feature you'd like to see
## 🎯 Problem Statement
What problem does this feature solve?
## 💡 Proposed Solution
Describe the solution you'd like to see
## 🔄 Alternative Solutions
Describe any alternative solutions you've considered
## 📱 Platform
- [ ] Web Application
- [ ] Mobile App (iOS)
- [ ] Mobile App (Android)
- [ ] All Platforms
## 🎨 UI/UX Considerations
Any specific design requirements or user experience considerations
## 🔗 Related Features
Link to any related features or existing functionality
## 📝 Additional Context
Add any other context or screenshots about the feature request
## 📋 Labels
- [ ] `type: feature`
- [ ] `component: [frontend/backend/mobile/database]`
- [ ] `priority: [critical/high/medium/low]`
- [ ] `difficulty: [beginner/easy/medium/hard/expert]`## 📚 Documentation Update
Brief description of what documentation needs to be updated
## 🎯 What Needs Updating
- [ ] README files
- [ ] API documentation
- [ ] User guides
- [ ] Developer documentation
- [ ] Code comments
## 📝 Specific Changes
Describe the specific changes needed
## 🔗 Related Code Changes
Link to any related code changes or issues
## 📋 Labels
- [ ] `type: documentation`
- [ ] `component: [frontend/backend/mobile/database]`
- [ ] `priority: [critical/high/medium/low]`We use story points and time estimates to plan and track development progress.
| Points | Description | Time Estimate | Examples |
|---|---|---|---|
| 1 | Very simple | 1-2 hours | Typo fixes, simple text changes |
| 2 | Simple | 2-4 hours | Minor UI adjustments, simple validations |
| 3 | Small | 4-8 hours | New form fields, basic CRUD operations |
| 5 | Medium | 1-2 days | Complex forms, API endpoints, database queries |
| 8 | Large | 3-5 days | New features, complex integrations |
| 13 | Very Large | 1-2 weeks | Major features, architectural changes |
| 21 | Epic | 2+ weeks | Break into smaller stories |
- Break Down Large Tasks: If a task is estimated at 8+ points, consider breaking it down
- Consider Dependencies: Account for time needed to understand existing code
- Include Testing: Estimation should include unit tests and basic testing
- Buffer for Unknowns: Add 20% buffer for unexpected challenges
- Review Time: Include time for code review and feedback incorporation
- Documentation: Factor in time for updating relevant documentation
- Integration Testing: Consider time needed for integration testing
- Initial Estimate: Developer provides initial story point estimate
- Team Discussion: Team discusses complexity and dependencies
- Final Estimate: Team agrees on final story point value
- Time Conversion: Convert story points to actual time estimates
- Regular Review: Revisit estimates if scope changes significantly
- Compare Similar Tasks: Look at completed similar tasks for reference
- Consider Team Experience: Factor in team member expertise level
- Account for Learning: New technologies or approaches need extra time
- Review Historical Data: Use past sprint velocity for better estimates
- Break Down Complex Tasks: Divide large tasks into smaller, estimable pieces
New Issue → Triage → Estimation → Assignment → Development → Review → Testing → Done
- Use appropriate template
- Add relevant labels
- Set priority and component
- Provide clear description
- Add screenshots or examples if applicable
- Review and categorize issues
- Estimate story points
- Assign to appropriate milestone
- Set assignee if known
- Add any missing labels or information
- Move issue to "In Progress"
- Create feature branch following naming convention
- Update issue with progress updates
- Link commits to issue using
#issue-number - Add any blockers or dependencies
- Submit pull request
- Move issue to "Review"
- Address feedback and comments
- Move to "Testing" after approval
- Update issue with testing progress
- Verify functionality meets requirements
- Update documentation if needed
- Move to "Done"
- Close issue
- Celebrate completion! 🎉
- One Issue Per Branch: Each feature branch should address one issue
- Regular Updates: Update issue status at least daily
- Clear Communication: Comment on issues when status changes
- Link Everything: Connect commits, PRs, and related issues
- Test Before Moving: Ensure functionality works before moving to next column
We use milestones to organize releases and track progress.
- Version Number: e.g., "v1.2.0"
- Due Date: Target release date
- Description: Key features and goals
- Issues: Linked issues and pull requests
- Feature Freeze: 2 weeks before release
- Code Freeze: 1 week before release
- Testing Phase: Final week before release
- Release Day: Deploy and tag release
- Realistic Scope: Don't overcommit to a single milestone
- Clear Goals: Define what "done" means for each milestone
- Regular Check-ins: Review progress weekly
- Flexibility: Adjust scope if needed to meet deadlines
- Celebration: Acknowledge team achievements
Use prefixes in commit messages to categorize changes:
feat: add new doctor search functionality
fix: resolve authentication token issue
docs: update API documentation
style: improve button styling
refactor: restructure user service
test: add unit tests for doctor service
chore: update dependencies
perf: optimize database queries
ci: update GitHub Actions workflow
build: update build configuration
feature/doctor-search
bugfix/auth-token-issue
hotfix/security-patch
release/v1.2.0
docs/api-update
test/unit-tests
refactor/user-service
- Start with Type: Always add a type label first
- Add Component: Specify which part of the system is affected
- Set Priority: Determine urgency level
- Indicate Difficulty: Help with task assignment
- Use Status: Track current state
- Special Labels: Add any relevant special labels
- Track story points completed per sprint
- Monitor estimation accuracy
- Identify bottlenecks and blockers
- Plan capacity for future sprints
- Analyze team performance trends
- Visual representation of sprint progress
- Track remaining work vs. time
- Identify if sprint goals are achievable
- Adjust scope if necessary
- Celebrate progress milestones
- Sprint Velocity: Average story points completed per sprint
- Estimation Accuracy: How close estimates are to actual time
- Issue Resolution Time: Time from creation to completion
- Code Review Time: Time spent in review phase
- Testing Coverage: Percentage of issues properly tested
- Go to GitHub Projects
- Familiarize yourself with the board structure
- Review current issues and priorities
- Understand the workflow columns
- Look for issues labeled
good first issueorhelp wanted - Check difficulty level matches your experience
- Ensure the issue is not already assigned
- Read the full description and requirements
- Comment on the issue to claim it
- Move it to "In Progress"
- Create a feature branch following naming convention
- Update the issue with progress updates
- Link commits to the issue
- Create a pull request
- Link it to the issue using
Closes #issue-number - Move issue to "Review"
- Address feedback promptly
- Update issue status as you progress
- Ensure all requirements are met
- Update documentation if needed
- Move issue to "Done"
- Close the issue
- Celebrate your contribution! 🎉
- GitHub Projects: https://docs.github.com/en/issues/planning-and-tracking-with-projects
- GitHub Issues: https://docs.github.com/en/issues
- GitHub Labels: https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work
- GitHub Milestones: https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones
- Agile Estimation: https://www.atlassian.com/agile/project-management/estimation
- Story Points Guide: https://www.mountaingoatsoftware.com/blog/what-are-story-points
- Scrum Methodology: https://www.scrum.org/resources/what-is-scrum
- Issue Template Generator: https://www.tablesgenerator.com/markdown_tables
- Git Commit Message Convention: https://www.conventionalcommits.org/
- GitHub CLI: https://cli.github.com/
If you have questions about this guide or need clarification on any process:
- Check Existing Issues: Search for similar questions
- Ask in Discussions: Use GitHub Discussions for general questions
- Contact Maintainers: Reach out to project maintainers
- Contribute to Guide: Suggest improvements to this documentation
Happy Contributing! 🚀
This guide is a living document. Feel free to suggest improvements!