Skip to content

Sprint 3

spano edited this page May 21, 2023 · 8 revisions

The milestone can be found at the following link: Sprint #3.

Objective

Objective: Enhance Website Application, Implement GitLab Pipeline, Supply Backend Functionality, and Refactor Software for Project Delivery

Focus: Extensively work on the GitLab pipeline, including automated unit testing and deployment mechanisms, to improve software reliability and streamline delivery workflow.

Task: Supply defined backend functionality to Vue components using JavaScript modules, integrating necessary backend modules to ensure seamless communication and data exchange between the concerned components.

Final stage: Refactor and refine the software, addressing issues, optimizing performance, and improving codebase readability and maintainability for project stability and scalability.

Outcome: By the end of Sprint #3, the project team aims to have an enhanced website application with refined Vue components, an effective GitLab pipeline for automated testing and deployment, supplied backend functionality, and completed final software refactoring and refinement. These efforts ensure project readiness for high-quality delivery.

List of requirements

The following section includes the list of requirements that were considered for Sprint #3. Moreover, for each, it is indicated whether it was completed or not. As part of documenting the issues, the Requirement template was used, which enforced the use of user stories, SRS requirements, etc., as much as applicable. The list is the following (sorted by issue numbers):

  1. #47: Create Sitemap diagram
    • This issue has been out-scoped for Sprint #3 as it proved to be a non-essential addition to the project. Hence, the label out-of-scope was added to the issue.
  2. #62: Create navbar for logged in user
  3. #63: Add reconnect to mqtt.js connect function
  4. #64: Create a Vue component for the sensor-specific graphs
  5. #65: Implement a JS module that generates a simple line graph
  6. #67: Calculate average sensor values
  7. #68: Add publish mechanism that transfers user-defined ranges (from the web-app) to the terminal
  8. #69: Add mechanism that supplies MonitorTerrarium page with real-time sensor values
  9. #70: Parse vibration data as a counter in application module
  10. #71: Create Website "MonitorTerrarium"-component
  11. #72: Add Client-Side Routing for the Terminarium Website
  12. #73: Refactor Behavior for "Your Terrariums"-page
  13. #74: Add More (Avatar) Image Assets
  14. #75: Apply global web styling
  15. #76: Improve Web-app Codebase Consistency
  16. #77: Refactor set sensor ranges component
  17. #78: Create an install/build pipeline for terminarium-web
  18. #79: Add a linting job to the pipeline
  19. #80: Implement save & read from local storage in set sensor ranges component
  20. #81: Add testing job to the pipeline
  21. #82: Add Unit Test for the DefaultPageLayout Vue Component
  22. #83: Fix logo file path in header
  23. #84: Add Unit Test for the Header Vue Component
  24. #85: Add a Unit Test for AccessButton Component
  25. #86: Add Unit Test for Avatar Component
    • This issue could not be completed due to time constraints. Thus, the label out-of-scope was added to the issue.
  26. #87: Add Unit Test for Chart Component
    • This issue was not completed due the implementation of the component which connects to the database to retrieve the sensor data. For that, the .env file would need to be "injected" onto the unit test, which proved to be a challenge. Thus, the labels out-of-scope, invalid were added to the issue.
  27. #88: Add Unit Test for the SelectTerrariumPage Component
    • Due to time limitations, this issue was not completed. Thus, the label out-of-scope was added to the issue.
  28. #89: Add Unit Test for the SetSensorRanges Component
    • The issue was not completed due to time constraints. Thus, the label out-of-scope was added to the issue.
  29. #90: Allow user input to modify network credentials from Wio terminal
  30. #91: Bug: fix Wio Terminal errors when simultaneously receiving multiple ranges
  31. #92: Add functionality to User Settings save button
  32. #93: Create registration page
  33. #96: Save network info and sensor ranges in Wio Terminal flash storage
  34. #98: Bug: Fix Avatar Displaying Over Header + Fix Links in Header
  35. #99: Color-code the Displayed Sensor Readings (Website)
  36. #100: Remove obsolete sensor test code
    • This issue was the closing issue regarding the finalization and refactoring of the software. It was successfully completed.

Overall, the team has managed to completed all the issues of the high, medium priorities; as indicated in the list, only a few issues (all being of the low priority) were not completed, particularly due to time constraints and infeasibility – #86, #87, #88, #89. Furthermore, the team has registered a time overdue in the delivery of some of the Vue components; however, the consequences of this were mitigated by the team's agile approach and the flexibility of the Vue framework.

The team has put great emphasis on the documentation of the project, which could have influenced the time overdue of some of the issues. However, this was a conscious decision, as the team has recognized the importance of the documentation for the project, particularly for the future development of the project.

Lastly, the process of refactoring and refinement of the software was also a time-consuming process, which was also a conscious decision, as the team has recognized the significance of the quality of the software for the project.

Timeline

The timeline for Sprint #3 is outlined as the following:

  • Start date: 2021-05-08
  • End date: 2021-05-21

Thus, making the duration of the sprint to be 14 days.

Risks

A summary of risks are challenges is outlined in detail in the Challenges subsection of the Sprint #3 section here.

Communication plan

The team has successfully continued to make use of Discord as the primary communication platform as well as GitLab and all its rich features for the development of the project. The team has also continued hold daily stand-ups, which were previously introduced as part of Sprint #2. Furthermore, Discord has enabled to effectively schedule meetings and share the agenda for the meetings via the Discord Events functionality.

Lastly, the team has also continued to make use of GitLab's issue board to keep track of the progress of the project and the issues that are being worked on.