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:
- Development of UI in a web-based environment using
Vue.js
andNode.js
;- the development entailed mimicking the prototype that was developed in
Sprint 1
usingFigma
.
- the development entailed mimicking the prototype that was developed in
- Establishment of
MQTT
connection via the broker within the Wio Terminal:Pub/Sub
mechanism for sensor data and user-defined optimal ranges
- 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.
- 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 inHTML
,CSS
andJavaScript
, as well as a Codecademy-course Learn Vue.js in addition to a lot of reading the official documentation to understand theVue.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 withMosquitto
. - 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 likeNode.js
has resulted in a better understanding of the concepts related to website/web-app development.
- Similarly, working with web-based frameworks such as
- 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
- Slides: Sprint #2 Presentation via Google Slides