Skip to content

Requirement Specification

Document Requirement Specification Draft
Specification name TukkoDoc
Author: Alan Ousi & Otto Nordling
Version: 0.8
Date: 17.07.2023

Introduction

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.

In addition, we have created the SKILL-db API, which integrates with the SKILL skill framework data. The framework data is stored in a PostgreSQL database, and other projects can access it through REST requests.

Principal / client

The subscriber to the requirement specification is Combitech. As the subscriber, Combitech has requested the development of the traffic visualizer project and has the ownership and theauthority over the project's requirements. The requirement specification serves as a formal document that outlines the specific needs, features, and functionalities desired by Combitech for the traffic visualizer. It will be used as a basis for communication between the development team and Combitech to ensure that the final product aligns with their vision.

About the authors

Team IoTitude 2023 is a part of WIMMA Lab and consists of junior developers who are passionate about coding and learning, aiming to enhance their skills in full-stack and backend development, as well as junior testers who are interested in continuous learning and staying updated with the latest technologies. Together, they combine their skills in coding, project management, test management, and testing to successfully deliver the project. More about the team at Team Introduction.

Short description of service/solution

Our 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, our service displays color-coded overlays indicating traffic flow, with red representing heavy congestion and green indicating smooth traffic. Users can zoom in, explore specific areas, and receive visual cues about the intensity of traffic along their chosen routes. With our traffic visualizer, anyone can easily plan their journeys, find the quickest routes, and avoid traffic jams, contributing to smoother and more efficient travel experiences.

Business requirements / goals?

ReqID Description
BUSINESS-REQ-0001 Traffic Visualizer's usage should be user-friendly so that even someone who has zero experience with computers could use it. This way everyone who want's to use our services can use it without problems.
BUSINESS-REQ-0002 Traffic Visualizer's website should take everyones user experience into account so that everyone can use it no matter their current conditions.

Stakeholder map

img

Stakeholders and profiles

Stakeholder/profile Info / Link to description Motivation
IoTitude Link to website Has been tasked with creating Traffic Visualizer website from Combitech
Mysticons Link to website Docker and Kubernetes support/solutions
Combitech Customer They want to see what IoTitude is capable of
Pengwin Media Link to website Develops graphics for traffic visualizer
WIMMA Lab Link to website Supports IoTitude in their project
End user 1 Person 21-65 Years old Wants to drive to her work without having to worry about traffic jams

Customer stories 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 can see where the traffic jams are and selects the fastest route to her office. Thanks to Traffic Visualizer, Sarah arrives at work on time and with reduced stress. .....*

  • 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. By leveraging the service, John maximizes his time exploring the city, visiting attractions, and enjoying the local culture, while minimizing the frustration of being caught in traffic.

Customer needs

ReqID Description
CUSTOMER-REQ-0001 As a user I want to be able to select dark mode for the application
CUSTOMER-REQ-0002 As a user I want the UI selections to have collapsible menu that shows only titles that can be expanded
CUSTOMER-REQ-0003 As a user I want to be able to select a high contrast version of the map
CUSTOMER-REQ-0004 As a user I want to be able to search for a city by text search
CUSTOMER-REQ-0005 As a user I want the performance to be optimized
CUSTOMER-REQ-0006 As a user I want to be able to zoom to a marker or a selected area by clicking it
CUSTOMER-REQ-0007 As a user I want the tooltip to show minimalistic info view but clicking it should show more info
CUSTOMER-REQ-0008 As a user I want to be able to see the traffic in a heatmap format
CUSTOMER-REQ-0009 As a user I want to highlight the roads so that i can get a clearer view

Customer Journey paths in Service/solution

Customer journey path as PlantUML Statemachine -diagram

plantuml image

Preliminary User Stories

User Story ID Description / link to issue
US001 Data Fetch
US002 Risk Management Plan
US003 Risk Management Plan (2)
US004 log-in and logging
US005 log-in and logging (2)
US006 Mysticons DDOS Attack
US007 QA tribe (I want it to work)
US008 Environmentalist types of vehicles
US009 Tester / QA Tribe functionality reqs
US010 Food Deliver Speed
US011 Traffic Volume
US012 Mysticons Penetration Testing
US013 Sensitive Data Check
US014 Difference between estimated and actual location
US015 Project documentation
US016 Filters
US017 Web application
US019 Kubernetes tests
US020 Food Delivery least congested route
US021 How are you feeling ticket
US022 Company cars representation
US023 Pengwin overlay
US024 City plans congestion
US025 City Plans types of vehicles
US026 Admin access
US027 Test documentation
US028 Tester Docker functionality
US029 Different types of vehicles
US030 Postal service worker
US031 Estimate of traffic capacity
US032 Fastest route
US033 public data
US034 Fastest Route Commuter
US035 Software containerized
US036 City Plans traffic in other cities
US037 Tester / QA Tribe Access
US038 Environmentalist energy consumption
US039 Test study project
US040 Hour reporting
US041 Reporting of routes
US042 Customer feedback
US043 Pengwin UI
US044 Selecting certain area
US045 Data Collecting
US046 Reporting
US047 Separate traffic
US048 Test plan
US049 Filters
US050 Customer wants this project to be done with React
US051 Customer wants this service to have some nice map visualizer
US052 Team leader Mockup
US053 Customer wants to see test count by %
US054 Customer wants us to use NoSQL for database
US055 User wants to see Linkki / Digitransit api data on the map
US056 User wants to see history data of traffic
US057 As a heavy traffic planner I want to plan a route
US058 User wants to switch to color blind mode clusters
US059 Primary data shown with clustermarker
US060 Want to highlight the roads so it's a clearer view
US061 Show traffic as a heatmap
US062 Tooltip could show minimalistic info view but by click should show more info
US063 Zoom to a marker / selected area
US064 I want the performance to be optimized
US065 Text search for city
US066 Wimmalab Branding for Traffic Visualizer
US067 IoTitude branding for Traffic Visualizer
US068 Darkmode
US069 High contrast version of the map
US070 UI selections should have collapsible menus that show only Titles that can be expanded
US071 As a traveller I want to use Tukko to check the road situation in Finland, Sweden and Norway
US072 I want to see road Customs in Norway so I can avoid them
US073 As a traveller I want to to find where the neares camping sites and resting places
US074 As an end user I want to see Tilannehuone.fi kind of data about accidents and such
US075 As an end user I want to see road constructions, bridge constructions sites on the map

Selected Use Cases of service/solution

uml diagram

Use Case Domain
UC001 - Service Docker Containerized Requirement Management
UC002 - GDPR Statements Requirement Management
UC003 - Service Analytics Requirement Management
UC004 - Leaflet.js for the map Requirement Management
UC005 - Visualize traffic hotspots Requirement Management
UC006 - Highlight an area from the map Requirement Management
UC007 - Filter data Requirement Management
UC008 - Automatized testing Requirement Management
UC009 - Service domain name (tukko.wimmalab.org) Requirement Management
UC010 - Mobile responsivness Requirement Management
UC011 - Customer feedback system Requirement Management
UC012 - Login system Requirement Management
UC013 - Email subscription Requirement Management
UC014 - Smart data filtering Requirement Management
UC015 - Show LAM Station locations Requirement Management
UC016 - TMS Show real time data Requirement Management
UC017 - TMS Show 5min averages of traffic Requirement Management
UC018 - Digitransit api info Requirement Management
UC019 - MongoDB for historical data Requirement Management
UC020 - Write unit tests for queries Requirement Management
UC021 - Filter by city, region, street name Requirement Management
UC022 - Accessibility Requirement Management
UC023 - Zoom to selected area Requirement Management
UC024 - Optimization Requirement Management
UC025 - Sweden Traffic API Requirement Management
UC026 - Norway Traffic API Requirement Management

Preliminary MockUp-prototype layouts for solution/service

mockup-img

System requirements

RequirementsID 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

  • Functions
  • The user receives traffic data from all around Finland
  • The user can toggle different types of data shown on or off
  • The user can search locations by name
  • The customer receives information about previous selections

uml diagram

Priorization of essential features / functions

  • P1 = Mandatory
  • P2 = important
  • P3 = Nice to have
Feature Priority
Feature 001 - Service Docker Containerized P1
Feature 002 - GDPR Statements P1
Feature 003 - Service Analytics P3
Feature 004 - Leaflet.js for the map P3
Feature 005 - Visualize traffic hotspots P1
Feature 006 - Highlight an area from the map P1
Feature 007 - Filter data P1
Feature 008 - Automatized testing P2
Feature 009 - Service domain name (tukko.wimmalab.org) P3
Feature 010 - Mobile responsiveness P2
Feature 011 - Customer feedback system P1
Feature 012 - Login system P3
Feature 013 - Email subscription P3
Feature 014 - Smart data filtering P3
Feature 015 - Show LAM Station locations P1
Feature 016 - TMS Show real time data P2
Feature 017 - TMS Show 5min averages of traffic P2
Feature 018 - Digitransit api info P2
Feature 019 - MongoDB for historical data P3
Feature 020 - Write unit tests for queries P1
Feature 021 - Filter by city, region, street name P1
Feature 022 - Accessibility P1
Feature 023 - Zoom to selected area P3
Feature 024 - Optimization P2
Feature 025 - Show Traffic Announcements on the map P3
Feature 026 - Show fetched Sweden traffic data on map P3
Feature 027 - Show fetched Norway traffic data on map P3

Functional requirements of the service

ReqID Description Affected feature?
FUNC-REQ-C0001 You have to be able to dockerize the software FEA001 - Service Docker Containerized
FUNC-REQ-C0002 User is able to accept or reject specified cookies according to GDPR FEA002 - GDPR Statements
FUNC-REQ-C0003 The developer must be able to make queries about the service FEA003 - Service analytics
FUNC-REQ-C0004 The user is able to interact with map elements with clicks / taps FEA004 - Leaflet.js for the map
FUNC-REQ-C0005 Visualize traffic flow with colors FEA005 - Leaflet.js for the map
FUNC-REQ-C0006 The user is able to draw shapes on the map to get information from the drawn region FEA006 - Highlight area from the map
FUNC-REQ-C0007 User has to be able to toggle what type of traffic data is being displayed on the map FEA007 - Filter data
FUNC-REQ-C0008 Developers ensure that Robot Network is able to interact with the software FEA008 - Automatized testing
FUNC-REQ-C0009 The developers host the software online on easy to remember URL FEA009 - Service Domain
FUNC-REQ-C0010 The user must be able to use the software on mobile platforms FEA010 - Mobile responsiveness
FUNC-REQ-C0011 The user is able to send feedback to the developer through the software itself FEA011 - Customer feedback system
FUNC-REQ-C0012 User is able to create a password protected account FEA012 - Login system
FUNC-REQ-C0013 The user is able to sign up for email notifications of their preferred area with their login FEA013 - Email subsription
FUNC-REQ-C0014 The user is able to toggle a filter that displays predictive traffic data FEA014 - Smart data filtering
FUNC-REQ-C0015 The user is able to toggle if LAM stations are displayed FEA015 - Show LAM station locations
FUNC-REQ-C0016 The user is able to display traffic data in real time FEA016 - TMS Show real-time data
FUNC-REQ-C0017 The user is able to display traffic data from last 5 minutes extrapolated to an hour FEA017 - Customer feedback system
FUNC-REQ-C0018 The developer makes the software request data from Digitransit API FEA018 - Digitransit API info
FUNC-REQ-C0019 The developer makes the software store historical data in a MongoDB database FEA019 - MongoDB for historical data
FUNC-REQ-C0020 The developers write unit tests for each section of the software FEA020 - Write unit tests for queries
FUNC-REQ-C0021 The user is able to type in a location's name to display data from the named location FEA021 - Filter by city, region, street name
FUNC-REQ-C0022 The user is able to toggle common color blindness filters FEA022 - Accessibility
FUNC-REQ-C0023 The user is able to interact with map elements to make the map zoom close to them FEA023 - Zoom to a marker or selected area
FUNC-REQ-C0024 Developers have to make sure the application performs smoothly FEA024 - Optimization
FUNC-REQ-C0025 The user is User has to be informed about ALL information that is collected of the said user. FEA002 - GDPR Statements
FUNC-REQ-C0026 User has to be informed about how the collected data is used FEA002 - GDPR Statements
FUNC-REQ-C0027 User has to be informed about where the collected data is saved FEA002 - GDPR Statements
FUNC-REQ-C0028 The user is able to draw shapes on the map FEA004 - Leaflet.js for the map
FUNC-REQ-C0029 Traffic data from Norway should be shown on the map FEA027 - Show fetched Norway traffic data on map
FUNC-REQ-C0030 Traffic data from Sweden should be shown on the map FEA026 - Show fetched Sweden traffic data on map
FUNC-REQ-C0031 Traffic announcements should be shown on the map FEA025 - Show Traffic Annoucements on the map

Software / service non-functional requirements

Performance Requirements

ReqID Description
PERF-REQ-0000 Login is possible for 100 users at the same time (100 request/s)
PERF-REQ-0001 The traffic data on the map should update quickly, with minimal delay
PERF-REQ-0002 The application should load the initial map view promptly upon user interaction
PERF-REQ-0003 The application should handle a large number of cities and traffic data points without performance issues
PERF-REQ-0004 Zooming and panning across the map should be smooth and responsive.
PERF-REQ-0005 The application should perform well on various devices and screen sizes

Security Requirements

ReqID Description
SEC-REQ-0001 The password must use at least MD5-level encryption, as required by the XY112 standard
SEC-REQ-0002 Regularly update and patch the application's software components and libraries to address known security vulnerabilities

Availability Requirements

ReqID Description
USAB-REQ-0000 Font should be size at 16pt
USAB-REQ-0001 User interface should be visible in high contrast mode
USAB-REQ-0002 User should be able to use dark mode in the application
USAB-REQ-0003 User should be able to text search for a specific city
USAB-REQ-0004 Traffic Visualizer application should be as user-friendly as possible
USAB-REQ-0005 Display real-time traffic data from reliable and up-to-date sources
USAB-REQ-0006 Provide historical traffic data that allows user to predict where traffic jams might happen
USAB-REQ-0007 The application should have clear and intuitive navigation menus

Quality Assurance

Preliminary Acceptance Tests

AcceptanceTestId Description Feature
ACCTEST001 Verify that the service can be deployed as a Docker container FEA001 - Service Docker Containerized
ACCTEST002 Verify that GDPR statements are displayed to inform users about data protection rights and management FEA002 - GDPR Statements
ACCTEST003 Verify that service analytics are implemented to analyze service usage and performance FEA003 - Service Analytics
ACCTEST004 Verify that the Leaflet.js library is integrated to provide map functionality FEA004 - Leaflet.js for the map
ACCTEST005 Verify that traffic hotspots can be visualized on the map FEA005 - Visualize traffic hotspots
ACCTEST006 Verify that users can highlight and retrieve data from a specific area on the map FEA006 - Highlight an area from the map
ACCTEST007 Verify that users can filter the displayed data by toggling different data types FEA007 - Filter data
ACCTEST008 Verify that unit tests are written for the implemented queries FEA020 - Write unit tests for queries
ACCTEST009 Verify that the service is accessible and compliant with WCAG2.1 standards FEA022 - Accessibility
ACCTEST010 Verify that LAM station locations are displayed on the map FEA015 - Show LAM Station locations
ACCTEST011 Verify that the service has a dedicated domain name (tukko.wimmalab.org) FEA009 - Service domain name (tukko.wimmalab.org)
ACCTEST012 Verify that the service is mobile responsive and functions well on mobile devices FEA010 - Mobile responsiveness
ACCTEST013 Verify that users can provide feedback through the customer feedback system FEA011 - Customer feedback system
ACCTEST014 Verify that users can subscribe to email notifications for updates and announcements FEA013 - Email subscription
ACCTEST015 Verify that smart data filtering options are implemented for advanced data filtering FEA014 - Smart data filtering
ACCTEST016 Verify that real-time traffic data from TMS is displayed on the map FEA016 - TMS Show real-time data
ACCTEST017 Verify that 5-minute average traffic data from TMS is displayed on the map FEA017 - TMS Show 5min averages of traffic
ACCTEST018 Verify that information from the Digitransit API is integrated into the service FEA018 - Digitransit API info
ACCTEST019 Verify that historical data can be stored and retrieved using MongoDB FEA019 - MongoDB for historical data
ACCTEST020 Verify that users can filter data by specifying city, region, or street name FEA021 - Filter by city, region, street name
ACCTEST021 Verify that the service provides traffic announcements displayed on the map FEA025 - Show Traffic Announcements on the map
ACCTEST022 Verify that fetched traffic data from Sweden is displayed on the map FEA026 - Show fetched Sweden traffic data on map
ACCTEST023 Verify that fetched traffic data from Norway is displayed on the map FEA027 - Show fetched Norway traffic data on map

Software architecture, placement view, database description, and integrations

Deployment diagram

From Architecture and Design uml diagram

Standards and sources

ID Category
JHS 165 ICT Requirement specification
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