Skip to content

Requirement Specification

Document Requirement Specification
Specification name Tukko1.1 Doc
Author: Jesse Anttila
Version: 1.0
Date: 22.2.2024

Introduction

As part of Jamk Future Factory IT 2024, our team's task is to implement additional features and modifications to Tukko - Traffic Visualizer, developed by WimmaLab's IoTitude. This service provides various types of information about current and past traffic data in Finland. We have decided to call this new version Tukko 1.1. Our ideas of improvement include upgrading the user experience through better accessibility, general nice-to-have features as well as expanding the scale of the service to Sweden.

Client

Our client is Combitech Finland, who were also the client of the original Tukko service. They are now collaborating with Jamk, providing us students with an interesting team project for our Future Factory IT course.

About the author and project team

We are ESCapes, a team consisting of five Jamk IT students with different skill levels and experiences, but an interest in IT and learning is something we all have in common. Read more about us on our team introduction page.

Short description of service/solution

As mentioned above, our solution is to enhance the Tukko user experience by increasing and upgrading accessibility, for example by providing a color blindess mode and enhancing the already implemented dark mode to be more easier to look at. One of our other objectives is adding an option for Swedish localization, which should be beneficial for all current and future Swedish-speaking users.

Business requirements / goals?

ReqID Description
BUSINESS-REQ-0001 The service must show current traffic data in the predetermined area
BUSINESS-REQ-0002 The service must have an user-friendly interface that is both easy to use and navigate
BUSINESS-REQ-0003 The service should be easy to maintain
BUSINESS-REQ-0004 The service is expanded to show data from Sweden
BUSINESS-REQ-0005 The service is well documented
BUSINESS-REQ-0006 The service supports future development

Stakeholder map

uml diagram

Stakeholders and profiles

Stakeholder / profile Info Motivation
Combitech Finland The client of the assignment Wants upgrades to the original Tukko
ESCapes The team responsible for Tukko 1.1 Wants to gain glory from Future Factory IT
Jamk School organization which organizes Future Factory IT Collaborates with Combitech to make this project assignment happen, mentor team supports ESCapes
Product Owner Middle man between customer and development team, belongs to Jamk Wants to have a successful FF project
End user group 1 Persons aged 15-70+ Uses the service regularly and benefits from it's information
End user group 2 Persons aged ~20-65+ Sometimes uses the service for work purposes

Customer stories as background information

End user story example 1

Regular user Riku wants to take his fiancée out for dinner. Neither of them like getting surprised by a sudden road work area just before reaching the restaurant, so Riku opens up Tukko 1.1 to check for the best possible route. It looks like his initially planned route has just recently had a car accident, and so the traffic there will be slowed down for a while. Riku then plans a new route and they make it to the restaurant without issues.

End user story example 2

Delivery driver Delilah must deliver an important package to one of her customers as soon as possible. This extra fast delivery job requires her to plan her travel route efficiently. She remembers a colleague mentioning Tukko 1.1 once, saying how easy and useful it was for checking the current traffic speeds around the whole country. Delilah decides to try it out and finds out that out of three different routes she could take, route 3 would theoretically be the fastest according to the most recent traffic data.

Customer needs

ReqID Description
CUSTOMER-REQ-0001 As a user I want to easily find a specific place on the map
CUSTOMER-REQ-0002 As a driver I want to see road conditions
CUSTOMER-REQ-0003 As a Swedish user I want to see traffic data from Sweden too
CUSTOMER-REQ-0004 As a user with color blindness, I too want to see the service
CUSTOMER-REQ-0005 As a user I prefer a dark mode with more pleasant colors
CUSTOMER-REQ-0006 As an older Swedish user I would like to read reports in Swedish
CUSTOMER-REQ-0007 As a user I want to collect data for my personal use

Customer Journey paths in Service/solution

Customer journey path as PlantUML Statemachine -diagram

uml diagram

Preliminary User Storys

User Story ID Description / link to issue
US001 As a user, I want to be able to compare different LAM stations side by side #58
US067 As a user, I want to compare two separate LAM stations real time data side by side on one view for both directions. #140
US068 As a user, I want to compare two different LAM stations both directions data-analytics on the same window or graph. #141
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
US017 As a developer, I want to regularly scan the codebase and dependencies for known security vulnerabilities and address them promptly #73
US018 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 #74
US045 As a user, I want the dark mode colors to not pop out as much #101
US046 As a user with color blindess, I want the web app to have sufficient color contrast between text and background elements, so that, I can easily read and understand the content #102
US048 As a user, I want road condition reports #104
US052 As a user, I want to search location by name #108
US053 As a user, I want to see traffic situation in Sweden #109
US058 As a swedish person I want to use the user interface in my native language, Swedish #114
US060 As a product owner I want the testing to include exploratory testing #116
US062 As a product owner, I want the WIMMA Lab / IoTitude branding changed to development team's and JAMK's branding. #133

Selected Use Cases

Use Case Domain
Use Case 1 - User compares LAM stations Functionality
Use Case 2 - User switches to dark mode Visual / accessibility
Use Case 3 - User exports data Functionality
Use Case 4 - User changes app language Accessibility
Use Case 5 - Security performs vulnerability scan Security
Use Case 6 - Testing performs manual tests Testing

Preliminary MockUp-prototype layouts for solution/service

System requirements

RequirementsID Description
SYSTEM-HW-REQ-0001 Linux 20.0 LTS or newer
SYSTEM-HW-REQ-0002 The main services must be at least duplicated N + 1
SYSTEM-HW-REQ-0003 Server memory capacity> 16GB
SYSTEM-HW-REQ-0004 Intel / AMD x64 processor

Constraints and standards that affect on service design

ReqId Description
CONSTRAINT-REQ-S00001 The service must follow GDPR guidelines
CONSTRAINT-REQ-S00002 The service must follow proper and secure coding practices

Service primary features and functionalities

uml diagram

Priorization of essential features / functions

  • P1 = Mandatory
  • P2 = Required
  • P3 = Nice to have
Feature Priority
FEA101 - Compare different LAM stations P1
FEA106 - Improve dark mode colors P1
FEA109 - Search location by name P3
FEA110 - Enhance color contrast for color blindness P1
FEA111 - Provide road condition reports P2
FEA112 - Change branding to team and JAMK brand P1
FEA201 - Export data to csv from the database P2
FEA203 - Export history data from specific dates P3
FEA302 - Traffic situation in Sweden P3
FEA304 - Localization for Swedish P3
FEA403 - Regularly scan for known security vulnerabilities P1
FEA404 - Enforce secure coding practices P1
FEA516 - Manual Testing P1

Functional requirements of the service

ReqID Description Affected feature?
FUNC-REQ-C0001 User is able to compare traffic statistics between any two LAM stations FEA101
FUNC-REQ-C0002 User is able to search for a specific city, area etc. by using a search bar FEA109
FUNC-REQ-C0003 User can export past traffic data to .csv format FEA201
FUNC-REQ-C0004 User can specify the timeframe of data they wish to export FEA203
FUNC-REQ-C0005 User can change the service language to Swedish at any time FEA304

Software / service non-functional requirements

Performance Requirements

ReqID Requirement Description
PERF-REQ-0000 Response Time The gateway service should respond to requests within a reasonable time frame under normal load conditions
PERF-REQ-0001 Throughput The gateway service should be able to handle a certain number of requests per second without degradation of performance
PERF-REQ-0002 Scalability The gateway service should be able to scale up to handle increased load, either by adding more resources (vertical scaling) or by distributing the load across multiple instances (horizontal scaling)
PERF-REQ-0003 Availability The gateway service should be available for use a certain percentage of the time, often expressed as a "five nines" (99.999%) availability requirement
PERF-REQ-0004 Resilience The gateway service should be able to recover quickly from failures and continue to function

Security Requirements

ReqID Requirement Description
SEC-REQ-0001 Vulnerabilities Security performs scans for known vulnerabilities at regular intervals

Accessability Requirements

ReqID Requirement Description
ACC-REQ-0001 Visibility All content must be viewable by people with color blindness
ACC-REQ-0002 Visibility All content must be easily viewable in dark mode

Quality Assurance

Software architecture, placement view, database description, and integrations

Integrations with other systems

uml diagram

Standards and sources

Name Description
ISO 9241-11 Usability standard
ISO 9001 Quality management standard
TypeScript JavaScript with type syntax
React JavaScript library for UI development
Node.js JavaScript runtime environment
Leaflet.js Interactive map tool / library
Geoman.io Geospatial data management tool / library
Redis In-memory database
MongoDB NoSQL-database
Docker Containerization
Digitraffic External data source for Finnish traffic data
TBD Yet undefined data source