Learning by creating projects [ Part 1]
Start by listing out requirements
- The project-based learning website facilitates collaborative project management for users.
- Users can browse and select projects listed as cards.
- Upon selecting a project, users gain access to a Kanban board that visually organizes tasks into stages (e.g., to-do, in progress, done).
- Users can start a project, which clones a template to their projects list.
- They can add, manage, and track subtasks within each task.
- The website integrates with GitHub, enabling users to attach their project repository links and manage commits and pull requests for each task.
- Project progress is calculated based on task completion, similar to Jira, and the website provides analytics and reporting.
- Each user has a personalized profile for a customized experience.
- The website is mobile responsive for accessibility across devices.
- A support system is available for user inquiries and assistance.
Epics
Creating epics for all the tasks can help organize and categorize the tasks into larger, high-level themes. Here are some epics based on the tasks for the project-based learning website:
Epic: Project Listing and Selection
- Allow users to browse and search for projects.
- Display projects as cards with relevant details and descriptions.
- Implement filters and tags to help users find specific projects.
Epic: Task Management and Kanban Board
- Enable users to select a project and access its associated Kanban board.
- Provide a visual representation of tasks in different stages (e.g., to-do, in progress, done).
- Allow users to move tasks between different stages on the Kanban board.
Epic: Project Initiation and Cloning
- Allow users to click "Start" on a project to initiate it in their projects list.
- Implement a template cloning mechanism for copying project templates to the user's list.
- Ensure that the cloned project retains its structure and tasks.
Epic: GitHub Integration
- Integrate with GitHub to allow users to attach their project repository link.
- Implement OAuth for secure authentication and authorization.
Epic: Task Commit/Pull Request Management
- Provide a mechanism for users to link their commits and pull requests to tasks.
- Display commit and pull request status on task cards or in the task details.
Epic: Progress Calculation and Reporting
- Calculate project progress based on the completion of tasks.
- Provide progress metrics at both task and project levels.
- Generate reports to visualize project progress over time.
Epic: User Authentication and Profiles
- Implement user registration and login functionalities.
- Create user profiles with relevant information (e.g., name, email, project history).
Epic: Collaboration and Notifications
- Enable task assignment to team members for group projects.
- Implement collaboration features like comments and notifications.
- Notify users of task assignments and updates.
Epic: Time Tracking and Reporting
- Add time tracking capabilities to record the time spent on each task.
- Provide time-related analytics and reports.
Epic: Mobile Responsiveness
- Ensure the website is responsive and user-friendly on various devices.
Epic: Help Center and Support
- Create a help center with FAQs and documentation to assist users.
- Provide a support system for users to report issues or ask questions.