Skip to content

Requirement Specification

Document Requirement Specification
Specification name Req Spec for service Tukko
Author: Joona Tuikkala & Kosti Katainen
Version: 1.0
Date: 9.2.2024

Introduction

In this document you will find the different elements of the requirement specification. The requirement specification handles project MTGA's possible features, requirements, mockups as well as other related material for the customer. The project MTGA project is all about taking an already working product Tukko and essentially making it even better through teamwork. Tukko is a traffic visualizer made as a part of WIMMA Lab by team IoTitude.

Client

The client for this project is Combitech Oy who created the Tukko Traffic Visualizer project and holds the ownership over the requirements of the new, enhanced project.

Requirement specification document is extremely important, because it holds Combitech's requirements, criteria and demands for the enhanced project. By following the rules in this document, we can assure that the quality and criteria will be met.

About the author and project team

Our project team Flying Hippos was made as a part of the Future Factory - course at JAMK. More in-depth introduction of our team can be found here

Short description of service/solution

Tukko - Traffic visualizer allows the users to observe different types of traffic data in a user-friendly interface which renders a map containing real-time traffic markers. This data is fetched from a trusted Finnish traffic data application programming interface which updates in real-time. It has multiple quality of life features such as zooming around the map, obtaining location specific vehicle datas such as average speed, average vehicle count per x hours etc. Using this tool will help you plan your trips with ease to avoid road outages/blocks and traffic jams.

Our project aims to increase the accessibility and user interface enhancing. Also keeping security as our priority, we have planned to add secure authentication and API endpoints.

Business requirements / goals?

ReqID Description
BUSINESS-REQ-0001 The project is completed within the time schedule
BUSINESS-REQ-0002 The project is completed within budget limitations
BUSINESS-REQ-0003 The traffic visualizer will be more accessible and user-friendly for anyone using the service
BUSINESS-REQ-0004 The service should be secure for any user and require strong authentication to access personal data

Stakeholder map

uml diagram

Stakeholders and profiles

Stakeholders/profile Info / Link to description Motivation?
Combitech Oy Company Profile To see the product get improved and more recognition
Flying Hippos Website Flying Hippos' are responsible for the development of enhanced Tukko Traffic Visualizer by Combitech Oy
End User 1 Person Profile To use Traffic Visualizer in order to plan a carefree trip from place A to place B
End User 2 Person Profile Colorblind user planning an ideal route from home to work which has the least amount of traffic

Customer story's as background information

End user 1 is planning a trip with their friend to go to Helsinki for the first time. They search up traffic applications on google and find Tukko. The user searches all their available routes and decides on the route that has no road work and is the fastest moving and closes the site.

End user 2 works in an office environment which is about 20 kilometers away from their apartment. They've recently moved to the neighborhood and figuring out the most efficient route to the office is on top of the "TODO-list". By using Traffic Visualizer, they were able to reroute their path to work which resulted in a minimized amount of traffic as well as faster arrival to work.

Customer need

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-0008 As a user I want to highlight the roads so that i can get a clearer view
CUSTOMER-REQ-0009 As a user I want to register a securely authenticated account to save my searching history privately
CUSTOMER-REQ-0010 As a user I want to download traffic data from the service in .CSV format

Customer Journey paths in Service/solution

Customer journey path as PlantUML Statemachine -diagram

uml diagram

Preliminary User Storys

User Story Description Feature
US002 As a user, I want to be able to create an account and securely authenticate myself to the web app. FEA102
US003 As a data analyst, I want to export data to csv from the database FEA201
US004 As a customer, I want secure authentication mechanisms, such as password hashing and session management, to protect user accounts. FEA102
US011 As a user, I want to choose an area and count average traffic. FEA204
US014 As a user, I want the backend to have secure API endpoints to protect against unauthorized access and data breaches. FEA401
US016 US016 As a user, I want the backend to have proper authentication and authorization mechanisms to ensure only authorized users can access and modify data. FEA401
US027 As a platform engineer, I want to set up a scalable and resilient infrastructure using containerization, such as Docker, to ensure easy deployment and management of the web app. FEA505
US029 As a platform engineer, I want to implement an automated build and deployment pipeline using tools like GitLab CI/CD to streamline the release process and ensure consistent deployments. FEA506
US030 As a platform engineer, I want to configure and manage a cloud-based infrastructure, such as CSC Pouta server, to ensure high availability and scalability of the web app. FEA507
US038 As a developer, I want to have automated tests for both frontend and backend code to ensure the reliability and correctness of the web app. FEA515
US039 As a developer, I want to set up continuous integration (CI) and continuous deployment (CD) pipelines to automate the testing and deployment processes. FEA515
US040 As a tester, I want to implement Robot Framework and browser libraries. FEA515
US045 As a user, I want the dark mode colors to not pop out as much. FEA106
US046 As a user with color blindness, 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. FEA110
US051 As a security specialist, I want all the GitLab Security dashboard problems mitigated. FEA408
US060 As a product owner, I want the testing to include exploratory testing. FEA516
US061 As a team member I want to have maintainable documentation FEA517

Selected Use Cases of service/solution

uml diagram

Use Case Domain
UC001 - Security representative finds vulnerabilities through GitLab security dashboard GitLab security dashboard
UC002 - Owner can upscale the cloud-based service Cloud management
UC003 - User turns on contrast for color blindness accessibility Color blind support
UC004 - User exports data to CSV CSV exporting
UC005 - User turns on dark mode Dark mode
UC006 - Team member can find accurate information with ease Maintainable documentation
UC007 - Tester finds and reports bugs manually Manual testing
UC008 - Users data is secured properly and accessible to authorized personnel only API endpoint securing
UC009 - User creates a securely authenticated account Secure authentication
UC010 - Tester setups environment to ensure frontend and backend codes reliability Automated testing
UC011 - User checks the average traffic in their area Average traffic
UC012 - Developer automates building and deployment pipeline Automated build
UC013 - Developer configures scalable and resilient infrastructure using docker containerization Infrastructure containerization

Preliminary MockUp-prototype layouts for solution/service

Here you can find a mockup of the darkmode feature

Here you can find a mockup of the secure authentication feature

System requirements

RequirementsID Description
SYSTEM-HW-REQ-0001 Frontend server has to have atleast 4VCPUs
SYSTEM-HW-REQ-0002 Frontend server has to have atleast 4VCPUs
SYSTEM-HW-REQ-0003 Backend server has to have atleast 4VCPUs
SYSTEM-HW-REQ-0004 Frontend server memory capacity has to be atleast 2Gb
SYSTEM-HW-REQ-0005 Run application in docker containers

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
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 primay features and functionalities

uml diagram

  • P1 = Mandatory

  • P3 = Required

  • P5 = Nice to have

Feature Priority
Feature 102 - Secure account authentication P1
Feature 106 - Dark mode improvements P1
Feature 110 - Better contrast for the colorblind P1
Feature 204 - Average traffic statistics Cancelled
Feature 408 - Gitlab security dashboard mitigation P1
Feature 515 - Test automation Cancelled
Feature 507 - Cloud management P1
Feature 505 - Scalable containerization P1
Feature 506 - Automated build and deployment pipeline P1
Feature 516 - Manual testing P1
Feature 517 - Maintainable documentation P1
Feature 201 - CSV exporting P2
Feature 401 - API endpoint securing P3

Functional requirements of the service

ReqID Description Affected feature?
FUNC-REQ-C0000 Mitigate all Gitlab security dashboard problems Link
FUNC-REQ-C0001 User can export traffic data in CSV format Link
FUNC-REQ-C0002 User can choose dark mode Link
FUNC-REQ-C0003 User can choose color blind suiting contrasts Link
FUNC-REQ-C0004 The features are tested properly Link
FUNC-REQ-C0005 The project documentation is maintained properly for the future developers and releases Link
FUNC-REQ-C0006 User can register a securely authenticated account Link
FUNC-REQ-C0007 Setup automated testing for frontend and backend code to run smoothly Link
FUNC-REQ-C0008 Secure the API endpoints in service Link
FUNC-REQ-C0009 Configure a scalable and resilient infrastructure using containerization in Docker Link

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

Accessability Requirements

ReqID Requirement Description
ACC-REQ-0000 Keyboard Accessibility All functionality must be operable through a keyboard interface.
ACC-REQ-0002 Text Alternatives Provide text alternatives for any non-text content.
ACC-REQ-0003 Time-based Media Provide alternatives for time-based media, such as captions for videos.
ACC-REQ-0004 Adaptable Content must be presented in ways that can be perceived by all users, including those with disabilities.

Quality Assurance

Preliminary Acceptance Tests

AcceptanceTestId Description Feature
ACCTEST001 FEA102 Verify secure account authentication process
ACCTEST002 FEA106 Verify dark mode functionality on the website
ACCTEST003 FEA10110 Verify color blind contrast functionality on the website
ACCTEST004 FEA204 Verify average traffic statistics
ACCTEST005 FEA408 Verify mitigation of GitLab security dashboard
ACCTEST006 FEA515 Verify automation tests
ACCTEST007 FEA507 Verify cloud management
ACCTEST008 FEA505 Verify the containerization scalability
ACCTEST009 FEA516 Verify manual testing functionality
ACCTEST010 FEA517 Verify validity and maintainability of the documentation
ACCTEST011 FEA201 Verify the functionality of data exporting in CSV format from database
ACCTEST012 FEA401 Verify the API endpoint security

Software architecture, placement view, database description, and integrations

Deployment diagram

Diagram

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 API
Docker Containerization platform
TypeScript Programming language
React Frontend JavaScript library/framework
Node.js JavaScript runtime environment