Disclaimer
As of 25/07/25, the client has not yet provided a full requirements document that was initially expected. So, as decided in W4 - Stand Up, we have developed a working set of requirements using our current understanding of the product, and the following resources:
- high-lvl-reqs.pdf - the high-level overview of the product from initial project pitch
- intro-slides.pdf - the first presentation the client’s gave in Week 2
- ICN’s Website - ICN Victoria’s website
Our agile approach ensures we can adapt and refine these requirements if and when the official documentation becomes available. See Client Disclaimer for more details.
NOTE: This document focusses on the software product - the ICN Navigator App. However, as an assignment, this project does include other deliverables (this document for instance!). These other “requirements” are included in our GitHub Project but are labeled with the “documentation” tag, and are not omitted from this breakdown.
Functional Requirements
A functional requirement is what the system must do, including key observable behaviour, services and features.
FR__
Links and User StoriesEach functional requirement in the table links to a dedicated page where it is broken down into user stories and further detail. This structure helps us trace requirements to user needs.
We apply this approach only to functional requirements - since user stories are best suited for describing observable system behaviour. It does not apply to non-functional requirements or out-of-scope items, where user stories are less meaningful.
See also the Project Management Doc for more info on how this is reflected on GitHub Projects.
Test | Requirement | Source |
---|---|---|
FR01 - Interactive Map | Display an interactive, map-based directory of companies, including their locations and capabilities | high-lvl-reqs, page 1 and intro-slides, page 5 |
FR02 - Company Profiles | Provide company profiles with key capabilities and details | high-lvl-reqs, page 1 |
Searching | Enable filtering/searching of companies by sector, capability, or location | intro-slides, page 7 and high-lvl-reqs, page 1 |
Optional list view of companies (sorted by distance from current location) | intro-slides, page 7 | |
Fetch and display data from simple REST API database using ICN data. | high-lvl-reqs, page 2 | |
Provide lightweight authentication | high-lvl-reqs, page 2 | |
Support multi-platform support with both web browsers and mobile. | high-lvl-reqs, page 1 | |
Ability to make an account and sign-in | intro-slides, page 6 | |
Membership tiers (direct payment integration not required) - presumably with access to different features. | intro-slides, page 6 | |
Onboarding when user first signs up. | intro-slides, page 6 |
Non-Functional Requirements
A non-functional requirement is how the system must perform, including the quality of the system as a whole.
ID | Requirement | Source |
---|---|---|
NFR1 | Modern, clean, and responsive UI design | high-lvl-reqs, page 2 |
NFR2 | Lightweight and maintainable code with modular components | high-lvl-reqs, page 2 |
NFR3 | Secure all communication with HTTPS | high-lvl-reqs, page 2 |
NFR4 | Easy deployment to common platforms (Vercel, Netlify, etc.) - no complex enterprise infrastructure. | high-lvl-reqs, page 2 |
NFR5 | Reliable performance and tested for usability (unit, intergration, UAT) | high-lvl-reqs, page 2 |
Out-of-Scope Requirements
Out of scope requirements are things we explicitly won’t do for this project.
ID | Requirement | Rationale |
---|---|---|
OSR1 | Building native iOS / Android apps from scrachj | Covered by cross-platform suppport |
OSR2 | Complex enterprise security or SSO integrations | Out of scope per “simple security measures” (see high-lvl-reqs, page 2) |
OSR3 | Migration of all historical ICN directories into the system | Privacy / copyright concerns means we will be working with anonymised ICN data |