Development Workflow
Feature-centric development structure for TopLocs ecosystem
This document outlines the development workflow approach derived from early TopLocs project organization, adapted for the current decentralized ecosystem.
GitHub Organization Structure
Issue Labels
Feature
- New functionality or capabilitiesUse Case
- User interaction scenariosUser Story
- User-focused requirementsEpic
- Grouping related features (optional)Priority
:High
,Medium
,Low
Status
:To Do
,In Progress
,Review
,Done
Type
:Frontend
,Backend
,API
,Database
,P2P
,Plugin
Development Hierarchy
- Epics (Optional) - Major feature groupings
- Features - Independent functionality units
- Use Cases - Specific user interaction scenarios
- User Stories - Granular user requirements
Feature-Centric Development Example
Epic: Profile Management
Issue: [Epic] Profile Management
Labels: Epic
, Priority: High
Description: Overview of multiple profile functionality
Feature: Multiple Profile Creation
Issue: [Feature] Multiple Profile Creation and Management
Labels: Feature
, Priority: High
Description: Users can create and manage multiple profiles for different contexts
Use Case: Creating a New Profile
Issue: [Use Case] User Creates a New Profile
Labels: Use Case
, Priority: High
Process:
- User navigates to profile management
- User selects "Create New Profile"
- User enters profile name ("Sports", "Work", etc.)
- User selects interests for profile
- User saves new profile
- System confirms and displays in profile list
User Story: Create Profile
Issue: As a user, I want to create multiple profiles
Labels: User Story
, Priority: High
, Type: Frontend
Description: "As a user, I want to create multiple profiles so I can compartmentalize different aspects of my life"
Workflow Process
1. Feature Planning
- Start with user needs and scenarios
- Create epics for major feature groups
- Break down into specific features
- Define use cases for each feature
- Write user stories for implementation
2. Issue Creation
- Create issues following the hierarchy
- Link child issues to parent issues
- Use consistent labeling
- Assign to appropriate milestones
3. Development Process
- Work on user stories within use cases
- Maintain traceability to parent features
- Update status labels as work progresses
- Review and test at each level
4. Quality Assurance
- Verify user stories meet acceptance criteria
- Test use cases end-to-end
- Validate features against requirements
- Ensure epics deliver complete value
Milestones and Releases
Sprint Planning
- Create milestones for 2-4 week sprints
- Group related features and use cases
- Balance feature work with technical debt
- Include plugin development and integration
Release Planning
- Major releases aligned with epic completion
- Minor releases for feature completion
- Patch releases for bug fixes
- Plugin releases independent of core platform
Project Management
GitHub Projects
- Use Projects for Kanban visualization
- Organize by feature or sprint
- Track progress across repositories
- Monitor dependencies and blockers
Cross-Repository Coordination
- Tag issues that span multiple repositories
- Use workspace-level epics for ecosystem features
- Coordinate plugin development with core changes
- Maintain compatibility across updates
Documentation Integration
Issue Documentation
- Link issues to relevant documentation
- Update docs when features are implemented
- Create documentation issues for major features
- Maintain changelog for releases
Code Documentation
- Document new features thoroughly
- Update API documentation for changes
- Include examples and usage patterns
- Maintain plugin development guides
Community Development
Contribution Guidelines
- Clear feature request process
- Community input on use cases
- Plugin development support
- Code review and feedback
Communication
- Use GitHub Discussions for feature planning
- Discord for real-time coordination
- Regular community updates
- Transparent decision-making
Best Practices
Issue Quality
- Clear, actionable descriptions
- Acceptance criteria for user stories
- Links to related issues and documentation
- Regular updates and progress tracking
Development Standards
- Follow established coding patterns
- Write tests for new features
- Document breaking changes
- Maintain backward compatibility
Community Standards
- Respectful communication
- Constructive feedback
- Collaborative problem-solving
- Inclusive development practices
Tools and Automation
GitHub Features
- Issue templates for consistency
- Automated labeling
- Project automation
- Integration with development workflow
Development Tools
- Continuous Integration
- Automated testing
- Documentation generation
- Plugin development SDK
This feature-centric approach ensures that development remains focused on user value while maintaining technical excellence and community collaboration across the TopLocs ecosystem.