Skip to content

Requirement Specification

Document Requirement Specification
Specification name Req Spec for Tukko updates
Author: Arttu Hiekkanen
Version: 1.0
Date: 9.2.2024

Introduction

Our assignment is an update to an earlier project commissioned by Combitech Oy. It is a open-source traffic visualizer service, which utilizes public traffic APIs, particularly Digitraffic. This service provides data visualizations on a map, allowing users to select vehicle types and various timescales. What we are doing is updating the tool with features that have come from the customer and its users

Client

Our assignment for the summer is a project commissioned by Combitech Oy. We are developing an open-source traffic visualizer service, which utilizes public traffic APIs, particularly Digitraffic. This service provides data visualizations on a map, allowing users to select vehicle types and various timescales.

About the authors

Team GUI Guerillas is a group formed by JAMK's future factory course, with the intent of teaching team working and agile developement in a live environment. We have a diverse group of developers and other technically minded people producing the services

Short description of service/solution

The traffic visualization service is a user-friendly web application designed to provide real-time information on traffic conditions and the fastest routes between locations. By integrating with reliable data sources, our system offers an up-to-date view of traffic congestion and road closures, allowing users to make informed decisions about their travel plans. Using an intuitive map interface, the service displays color-coded overlays indicating traffic flow.

Business requirements / goals?

Wishes: Businesses would likely desire high user engagement and satisfaction with the app. This could include features that make the app easy to use, visually appealing, and informative.

Needs: Regular updates, bug fixes, and user feedback mechanisms would be crucial to address user concerns and improve satisfaction.

ReqID Description
BUSINESS-REQ-0001 Traffic Visualizer's website should take everyones user experience into account so that everyone can use it no matter their current conditions.
BUSINESS-REQ-0002 The built features should work as intended and with little extra servicing required

Stakeholder map

we are one of the teams in this case

Stakeholders and profiles

Stakeholde/profile Info / Link to description Motivation?
GUI Guerillas Link to website Has been tasked with updating the Tukko system
Combitech Customer They need the updates to Tukko
JAMK Link to website Manages the teams
End user 1 profile Has been using the service and has been wanting a certain feature

Customer story's as background information

  • User 1 Sarah is a regular commuter who drives to work every day. She relies on our traffic visualizer to plan her routes and avoid congestion. Using the application, she quickly checks the real-time traffic conditions before leaving home. Sarah is using dark mode but gets really irritated by the bad colorscheme, so start the day off feeling annoyed.

  • User 2 John is a tourist visiting a city. He wants to explore various attractions without getting stuck in traffic. John opens our traffic visualization service on his tablet and selects the area he wishes to explore. The map displays real-time information about traffic flow, allowing John to choose the routes with lighter congestion.

Customer need

ReqID Description
CUSTOMER-REQ-0001 As a user I would like for the dark mode colors to be readable
CUSTOMER-REQ-0002 As a user I want to be able to export data from certain periods
CUSTOMER-REQ-0003 As a user I want the performance to be optimized
CUSTOMER-REQ-0004 As a user I want to search locations by name

Customer Journey paths in Service/solution

Customer journey path as PlantUML Statemachine -diagram

Preliminary User Storys

User Story ID Description / link to issue
US062 As a product owner, I want the WIMMA Lab / IoTitude branding changed to development team's and JAMK's branding. #118
US061 As a team member I want to have maintainable documentation. #117
US060 As a product owner, I want the testing to include exploratory testing. #116
US035 As a platform engineer, I want to regularly update and patch the underlying technology stack, including React, MongoDB, Redis, TypeScript, Express, Node.js, to ensure the web app benefits from the latest features, improvements, and security fixes. #91
US003 As a data analyst, I want to export data to csv from the database. #60
US010 As a user, I want to export history data from specific dates. #66
US045 As a user, I want the dark mode colors to not pop out as much. #101
US057 As a security specialist, I want to have controls over who can access the server. #113
US017 As a developer, I want to enforce secure coding practices, such as input validation and output encoding, to prevent common security vulnerabilities like cross-site scripting (XSS) attacks. #73
US052 As a user, I want to search location by name. #108

Selected Use Cases of service/solution

Majority of use cases can be found in the tukko documentation

Use Case Domain
Use Case 1 - Exporting historical data Database
Use Case 2 - Searching for a location User Interface

Preliminary MockUp-prototype layouts for solution/service

The current UI of the service, the things changed in this will depend solely on features implemented, so mockups of the changes will be on the feature specific documentation pages.

System requirements

RequirementID Description
SYSTEM-HW-REQ-0001 Frontend server has to have atleast 4VCPUs
SYSTEM-HW-REQ-0002 Backend server has to have atleast 4VCPUs
SYSTEM-HW-REQ-0003 Frontend server memory capacity has to be atleast 2Gb
SYSTEM-HW-REQ-0004 Backend server memory capacity has to be atleast 2Gb Frontend

Constraints and standards that affect on service design

ReqId Description
CONSTRAINT-REQ-S00000 End user data shall be handled in a way that complies with [EU GDPR Act] (https://en.wikipedia.org/wiki/General_Data_Protection_Regulation)
CONSTRAINT-REQ-S00001 The service should be accessible by Directive (EU) 2019/882
CONSTRAINT-REQ-S00002 Service design should take into account the agreed-upon service levels and performance metrics that will be used to monitor the service's performance.
CONSTRAINT-REQ-S00003 The service must be designed with usability in mind to ensure that it is easy to use and understand.
CONSTRAINT-REQ-S00004 The design of the service must take into account the technical constraints and opportunities presented by available technology.
CONSTRAINT-REQ-S00005 The service design must consider the ability of the service to integrate with other systems and technologies as necessary

Service primary features and functionalities

  • The user receives traffic data from all around Finland
  • The user can toggle interface elements
  • The user can export data
  • The customer receives information about previous selections

uml diagram

Priorization of essential features / functions

  • P1 = Mandatory
  • P2 = Required
  • P3 = Nice to have
Feature Priority
Feature 112 - Change branding to team and JAMK P1
Feature 517 - Maintainable Documentation P1
Feature 516 - Manual Testing P1
Feature 512 - Regularly update and patch the underlying technology stack P1
Feature 201 - Export data to csv from the database P2
Feature 203 - Export history data from specific dates P3
Feature 106 - Improve dark mode colors P1
Feature 109 - Search location by name P3
Feature 407 - Control access to the server P2
Feature 404 - Enforce secure coding practices P1

Functional requirements of the service

Most of the functional requirements of the service are listed in the original tukko documentation.

ReqID Description Affected feature?
FUNC-REQ-C0001 User is able to identify the updated page from the original tukko website Feature 112
FUNC-REQ-C0002 Future maintainers are able to easily find out why things were done how they were Feature 517
FUNC-REQ-C0003 The features of the product are tested Feature 516
FUNC-REQ-C0004 The product has all the latest features of the underlying tools Feature 512
FUNC-REQ-C0005 A way to export data Feature 201 and Feature 203
FUNC-REQ-C0006 Formatting exported data to desired formats Feature 201 and Feature 203
FUNC-REQ-C0007 More pleasant colors in dark mode Feature 106
FUNC-REQ-C0008 Controlling the server access Feature 407
FUNC-REQ-C0009 Keep code secure Feature 404
FUNC-REQ-C0010 Search for a location on the map Feature 109

Software / service non-functional requirements

These are also in the original tukko documentation

Performance Requirements

These are outlined in the original documentation.

Security Requirements

ReqID Requirement Description
SEC-REQ-0001 Secure code The code should not be vulnerable to xss and other attacks.
SEC-REQ-0002 Updated technologies The underlying technology stack should be up to date with fixes to security vulnerabilities

Accessability Requirements

These are outlined in the original documentation.

Quality Assurance

Preliminary Acceptance Tests

Acceptance tests generally focus on the customer / end-user perspective. The aim is to validate, ie to validate whether the product meets the customer's wishes and whether it meets the set requirements. Acceptance tests can be used to determine whether a product is also sufficiently high-performance, usable, or secure for customer use.

AcceptanceTestId Description Feature
ACCTEST001 - Acceptance Test 1 eg. Verify login as new user Feature X
ACCTEST002 - Acceptance Test 2 eg. Verify remove of personal data Feature Y
ACCTEST003 - Acceptance Test 3 eg. Verify login with correct password Feature Z

Software architecture, placement view, database description, and integrations

Outlined in the tukko documentation

Deployment diagram

from tukko architechture and design

Standards and sources

ID Category
SO 9241-11 Usability
ISO9001 Quality management
Leaflet.js Tool/Library
Geoman.io Tool/Library
Redis.io Database
MongoDB Database
Digitraffic External data source
Docker Containerization platform
TypeScript Programming language
React Frontend JavaScript library/framework
Node.js JavaScript runtime environment