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.

See also the Project Management Doc for more info on how this is reflected on GitHub Projects.

TestRequirementSource
FR01 - Interactive MapDisplay an interactive, map-based directory of companies, including their locations and capabilities
high-lvl-reqs, page 1 and intro-slides, page 5
FR02 - Company ProfilesProvide company profiles with key capabilities and detailshigh-lvl-reqs, page 1
SearchingEnable filtering/searching of companies by sector, capability, or locationintro-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 authenticationhigh-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-inintro-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.

IDRequirementSource
NFR1Modern, clean, and responsive UI designhigh-lvl-reqs, page 2
NFR2Lightweight and maintainable code with modular componentshigh-lvl-reqs, page 2
NFR3Secure all communication with HTTPShigh-lvl-reqs, page 2
NFR4Easy deployment to common platforms (Vercel, Netlify, etc.) - no complex enterprise infrastructure.high-lvl-reqs, page 2
NFR5Reliable 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.

IDRequirementRationale
OSR1Building native iOS / Android apps from scrachjCovered by cross-platform suppport
OSR2Complex enterprise security or SSO integrationsOut of scope per “simple security measures” (see high-lvl-reqs, page 2)
OSR3Migration of all historical ICN directories into the systemPrivacy / copyright concerns means we will be working with anonymised ICN data