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
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
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
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
-
P1 = Mandatory
-
P3 = Required
-
P5 = Nice to have
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
- Link to Master Test Plan
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
- Link to Software architecture
Deployment 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 |