Sprint 2 Delivery - rokanas/terminarium GitHub Wiki

Scope

The list of requirements that the team worked on during this sprint can be found via the Sprint:2 label at the following link: Sprint #2 [internal].

The work for the scope of the sprint consisted primarily of:

  1. Development of UI in a web-based environment using Vue.js and Node.js;
    • the development entailed mimicking the prototype that was developed in Sprint 1 using Figma.
  2. Establishment of MQTT connection via the broker within the Wio Terminal:
    • Pub/Sub mechanism for sensor data and user-defined optimal ranges
  3. Establishing a connection with the database (Firebase Realtime Database):
    • development of basic CRUD functionalities with the database; namely fetching (i.e. reading) and updating data.
  4. Development of Back-End utilities (via JavaScript modules) for the web-based application.

However, the team did not succeed in implementing the following issues: #45, #47, #53. The reasons are, primarily, because a more viable solution was found for the concerned issues. For example, in terms of #45, the team members have agreed to use a different solution in terms of the Vue.js framework (context: global dynamic data properties). On the other hand, #47 was moved to the following sprint due to the fact that the need for a Sitemap diagram was not as urgent as the other issues (as opposed to the development of other core functionalities).

Challenges and Lessons Learned

  • In Sprint 2, the team has been organized into a dedicated front-end/web development sub-team, and a specialized back-end team, each with their respective areas of focus.
  • Consequently, team members have encountered diverse challenges and gained distinct learning experiences, some of which were expected while others emerged unexpectedly.

Development Process (Front-End)

  • To reach the desired goals for Sprint #2, the Front-End sub-team had to go through a crash-course in web-development in under a week, which included video-tutorials in HTML, CSS and JavaScript, as well as a Codecademy-course Learn Vue.js in addition to a lot of reading the official documentation to understand the Vue.js framework.
  • Therefore, this sprint has been a learning experience for the Front-End sub-team, as they have had to learn a lot of new concepts and technologies in a short amount of time.

Development Process (Back-End)

  • As a result of working towards the proposed end product, the team has acquired advanced knowledge in utilizing the MQTT protocol, while simultaneously coping with the limitations of the WIO terminal.
  • Regarding the Wio terminal specifically, the team has faced quite a few challenges with:
    • The responsiveness of the program (particularly the vibration sensor)
    • The memory limits of the Wio Terminal (particularly with drawing the sprites on the LCD screen while utilizing the WiFi library)
  • In terms of developing the JS modules, the team has managed to overcome all struggles neatly.

Further description of the encountered challenges can be obtained here.

Learning Outcomes

  • The team has seen further improvement with applying the git workflow (merge conflicts, code reviews) in practice as well as designing requirements and/or issues.
  • Designing and implementing a GUI for the system has also resulted in a better understanding about the related concepts.
  • The team has implemented MQTT related functionality such as the publishing and subscribing mechanisms and in the process have gotten a better understanding of these concepts along with working with Mosquitto.
  • The team has exercised working with a database (Firebase Realtime Database) and has gained a better understanding of the concepts related to the topic.
  • Working with web-based technologies and learning basic principles of web development: HTML, CSS, JavaScript.
    • Similarly, working with web-based frameworks such as Vue.js and utilities like Node.js has resulted in a better understanding of the concepts related to website/web-app development.
  • Moreover, the team has acquired a more profound understanding of the Wio Terminal and its capabilities (e.g. memory optimization, package management, etc.)

Video Demo