Requirement Specification
Document | Requirement Specification |
Specification name | Req Spec for service TUKKO |
Author: | Anni Orilähde, Tingting Huang, Emils Bagirovs |
Version: | 1.0.0 |
Date: | 16-02-2024 |
Introduction
The project is part of Future Factory course in Jyväskylä University of Applied Sciences, which was held during spring 2024. Tukko - Traffic Visualizer, developed originally by WIMMA Lab 2023 IoTitude, was created as an assignment given by Combitech. Tukko utilizes data from the digitraffic API and enhances it by consolidating scattered information from multiple endpoints into its own simplified API. Additionally, the project gathers long-term data, which can be later presented to users to identify recent anomalies in traffic patterns.
Client
The subscriber to the requirement specification for the traffic visualizer project is Combitech. As the subscriber, Combitech has initiated the development of the project and holds both ownership and authority over its requirements. The requirement specification serves as an official document delineating Combitech's specific needs, features, and functionalities desired for the traffic visualizer. It functions as a crucial communication tool between the development team and Combitech, ensuring alignment with their vision throughout the project lifecycle.
About the author and project team
Team Hopbit is group of 6 junior developers, thrive on creativity, dedication, and a relentless pursuit of excellence. With diverse backgrounds and a shared passion for software engineering, we bring a wealth of skills and perspectives to the table. Our collective goal is to leverage cutting-edge technologies and industry best practices to craft solutions that not only meet but exceed expectations.
Short description of service/solution
The traffic visualization service offers real-time information on traffic conditions and the fastest routes between locations through a user-friendly web application. Its users include commuters, travelers, delivery drivers, and anyone else seeking efficient travel routes. The service's primary role is to empower users with up-to-date insights into traffic congestion and road closures, enabling them to make informed decisions about their travel plans.
Potential end users include individuals commuting to work, travelers planning road trips, delivery companies optimizing routes, and city planners analyzing traffic patterns. Relevant stakeholders benefiting from the service include local authorities, transportation agencies, businesses reliant on timely deliveries, and the general public seeking smoother travel experiences.
Overall, the service plays a crucial role in enhancing transportation efficiency, reducing travel time, and minimizing congestion for various stakeholders involved in the transportation ecosystem.
Business requirements / goals?
ReqID | Description |
---|---|
BUSINESS-REQ-0001 | Registration as a new user should be easy for old users, because is's our user focus group 35% |
BUSINESS-REQ-0002 | Userfriendly, the web application should be intuitive and easy to use for various types of users, including commuters, travelers, delivery drivers, and city planners. |
BUSINESS-REQ-0003 | Offer the fastest and most efficient routes between locations, considering real-time traffic data to minimize travel time. |
BUSINESS-REQ-0004 | Provide accurate, up-to-date information on traffic conditions, including congestion levels, accidents, road closures, and construction activities. |
Stakeholder map
Stakeholders and profiles
Stakeholde/profile | Info / Link to description | Motivation? |
---|---|---|
Team Hopbit | Team Introduction | Develops improved version of TUKKO Traffic Visualizer |
JAMK | Visit their site | Supports the development team |
End user 1 | Local, lives in certain area | Can see traffic from daily route they use |
End user 2 | Tourist | Can plan their trip and avoid certain areas with high traffic |
Combitech | Visit their site | supports service users |
Customer story's as background information
End user/customer story
As a user planning a family tour during a weekend, he wants to use the 'Tukko' application to facilitate our journey. Before starting our 4-hour drive to a park, he logs in to the application to access historical data and retrieve the location. Once logged in, he switches the application to light mode for better visibility during the daytime and activate sport mode to optimize the app's performance for the upcoming journey. This ensures a smooth and enjoyable experience for his family during the trip.
Customer need
ReqID | Description |
---|---|
CUSTOMER-REQ-0001 | A clear and intuitive interface for easy navigation and use. |
CUSTOMER-REQ-0002 | Ability to access historical data from specific dates to review past activities or information within the application. |
CUSTOMER-REQ-0003 | Capability to provide feedback within the application to share my thoughts, suggestions, or report any issues encountered for continuous improvement. |
CUSTOMER-REQ-0004 | Option to switch between light and dark modes to accommodate different lighting environments and personal preferences. |
CUSTOMER-REQ-0005 | Accessible to individuals with disabilities, ensuring that all features and functionalities can be easily utilized and navigated using assistive technologies. |
Customer Journey paths in Service/solution
Customer journey path as PlantUML Statemachine -diagram
Preliminary User Storys
User Story ID | Description | link to issue |
---|---|---|
US002 | As a user, I want to be able to create an account and securely authenticate myself to the web app. | #177 |
US003 | As a data analyst, I want to export data to csv from the database | #178 |
US004 | As a customer, I want secure authentication mechanisms, such as password hashing and session management, to protect user accounts. | #179 |
US011 | As a user I want to choose an area and count average traffic | #185 |
US028 | As a platform engineer, I want to configure security measures, such as SSL/TLS certificate s and secure network configurations, to protect the web app and its data from unauthorized ac cess. | #202 |
US035 | As a platform engineer, I want to regularly update and patch the underlying technology st ack, including React, MongoDB, Redis, TypeScript, Express, Node.js, to ensure the web app ben efits from the latest features, improvements, and security fixes. | #209 |
US037 | As an administrator, I want to monitor server loads with a GUI. | #211 |
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. | #212 |
US040 | As a tester I want to implement Robot Framework and browser libraries | #214 |
US045 | As a user, I want the dark mode colors to not pop out as much. | #219 |
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. | #220 |
US047 | As a user, I want to have favorite LAM stations which I can follow under my user. | #221 |
US049 | As a user, I want to be able to plan the best route from place A to place B. | #223 |
US051 | As a security specialist, I want all the GitLab Security dashboard problems mitigated. | #225 |
US052 | As a user, I want to search location by name. | #226 |
US058 | As a swedish person I want to use the user interface in my native language, Swedish. | #232 |
US060 | As a user, I want to plan my route based on LAM station traffic statistics. | #234 |
Selected Use Cases of service/solution
Use Case | Domain |
---|---|
Use Case 1 - User login | User login page |
Use Case 2 - User Search | Searching box |
Use Case 3 - User's traffic history | History data |
Use Case 4 - User's feedback | User feedback bar |
Preliminary MockUp-prototype layouts for solution/service
System requirements
RequirementsID | Description |
---|---|
SYSTEM-HW-REQ-0000 | Operating System: Ubuntu Server - Version 22.04.3 LTS |
SYSTEM-HW-REQ-0001 | Platform to run application in containers: Docker |
SYSTEM-HW-REQ-0002 | Memory space: The server should have 8GB of RAM to ensure application running |
SYSTEM-HW-REQ-0003 | Database: The application required a database server to store and monitor data, such as mySQL and MongoDB |
SYSTEM-HW-REQ-0004 | Intel / AMD x64 processor |
SYSTEM-HW-REQ-0005 | Network: A smooth and reliable internet connect to delivery data and service |
Constraints and standards that affect on service design
ReqId | Description |
---|---|
CONSTRAINT-REQ-S00000 | The service login process must follow XYZ policies [Login ft1] (bottoms / bottom property.md) |
CONSTRAINT-REQ-S00002 | ... |
Service primay features and functionalities
Main features based on Product Mind Map:
- Feature 102: Securely authenticate user account
- Feature 103: Save favourite LAM stations to user account
- Feature 106: Improve dark mode colors
- Feature 110: Enhance color contrast for color blindness
- Feature 201: Export data to CSV from the database
- Feature 204: Count average traffic in chosen area
- Feature 304: Localization for Swedish
- Feature 305: Localization for Norwegian
- Feature 408: Mitigate all GitLab Security dashboard problems
- Feature 410: HTTPS Connection
- Feature 514: Monitor server loads with a GUI
- Feature 515: Automate tests for frontend and backend code
- Feature 516: Manual Testing
- Feature 517: Maintainable Documentation
Priorization of essential features / functions:
- P1 = Mandatory
- P3 = Required
- P5 = Nice to have
Feature | Priority |
---|---|
Securely authenticate user accounts | P1 |
Export data to csv from the database | P1 |
Count average traffic in chosen area | P1 |
HTTPS Connection | P3 |
Regularly update and patch the underlying technology stack | P1 |
Monitor server loads with a GUI | P3 |
Automate tests for frontend and backend code | P1 |
Maintainable Documentation | P1 |
Improve dark mode colors | P1 |
Enhance color contrast for color blindness | P1 |
Save favourite LAM stations to user account | P1 |
Mitigate all GitLab Security dashboard problems | P1 |
Localization for Swedish | P5 |
Localizaation for Norwegian | P5 |
Manual Testing | P1 |
Functional requirements of the service
Software / service non-functional requirements
Performance Requirements
ReqID | Requirement | Description |
---|---|---|
PERF-REQ-0000 | Response Time | The gateway service should respond to requests within a specified 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 | Secure Communication | All communication between devices and servers must be encrypted to prevent interception. |
SEC-REQ-0002 | Authentication | Firefighters must be authenticated before they can access the system to ensure that only authorized personnel have access. |
SEC-REQ-003 | Data Integrity | The system must ensure that data, such as incident reports or firefighter locations, is not tampered with. |
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. |
These
Quality Assurance
- Link to Master Test Plan
Preliminary Acceptance Tests
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
- Link to Software architecture
Deployment diagram
Integrations with other systems
- Link to Software architecture
General view of integrations as UML Deployment Diagram
OR
Standards and sources
- General Data Protection Regulation (GDPR): This regulation protects privacy and gives individuals control over their personal data.
- ePrivacy Directive: This directive complements the GDPR and provides rules on confidentiality of communications and tracking technologies such as cookies.
- Directive on the legal protection of computer programs ('Software Directive'): This directive protects computer programs by means of copyright.
- Directive on the enforcement of intellectual property right ('IPRED'): This directive enforces intellectual property rights.
- Directive on the legal protection of databases ('Database Directive'): This directive protects databases.
- EU Cybersecurity Act: This act ensures safer hardware and software.
- Digital contract rules: These rules make it easier for consumers and businesses to buy and sell digital content, digital services, goods, and 'smart goods' in the EU.
Please note that these are just a few examples and the specific laws and rules may vary depending on the context and the specific needs of your software service. It's always a good idea to consult with a legal expert to ensure compliance with all relevant laws and regulations.