Learning by creating projects [ Part 1]

Start by listing out requirements

  1. The project-based learning website facilitates collaborative project management for users.
  2. Users can browse and select projects listed as cards.
  3. Upon selecting a project, users gain access to a Kanban board that visually organizes tasks into stages (e.g., to-do, in progress, done).
  4. Users can start a project, which clones a template to their projects list.
  5. They can add, manage, and track subtasks within each task.
  6. The website integrates with GitHub, enabling users to attach their project repository links and manage commits and pull requests for each task.
  7. Project progress is calculated based on task completion, similar to Jira, and the website provides analytics and reporting.
  8. Each user has a personalized profile for a customized experience.
  9. The website is mobile responsive for accessibility across devices.
  10. 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.