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
Priorization of essential features / functions
- P1 = Mandatory
- P2 = Required
- P3 = Nice to have
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
- Link to Master Test Plan
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
- Link to Software architecture
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 |