LogoLogo
PAO DocsCommunity DocsInfrastructure DocsPeerplays.com
  • Developer Documentation
  • API Reference
    • Peerplays Core API
      • Popular API Calls
      • Account History
      • Asset API
      • Block API
      • Crypto API
      • Database API
      • Network Broadcast API
      • Network Nodes API
      • Orders API
    • Wallet API
      • Account Calls
      • Asset Calls
      • Blockchain Inspection
      • General Calls
      • Governance
      • Privacy Mode
      • Trading Calls
      • Transaction Builder
      • Wallet Calls
    • Bookie API
      • General Calls
      • Listeners
      • Tournaments
  • Peerplays API Libraries
    • Python Peerplays
      • Installation
      • Creating an Account
      • Creating a Peerplays Wallet
      • NFT API
      • Marketplace API
      • Role Based Permissions API
  • Development Guides
    • Creating User Issued Assets
    • Introduction to Permissions
    • NFT Minting
    • Calculating Costs
  • The Cookbook
    • NFTs for Staking Creator Tokens
  • Tools and Integrations
    • PeerID
      • 1.0.0
        • Infrastructure
          • Deployment on a Linux Serve
          • Deployment to AWS ECS
            • Building the Docker Images
            • Storing Secrets in Amazon Parameter Store to use in ECS
            • Creating the Task Definition
            • Creating the Cluster
            • Creating the Service
        • Development
          • How does PeerID work without storing the keys ?
          • Authentication with PeerID
          • Brain Storming
          • Software Requirements
      • Authentication with PeerID
      • Requirements Specification
    • Random Number Generator
      • RNG Technical Summary
      • RNG API
  • Supporting & Reference Docs
    • Peerplays Development FAQs
    • Sidechain Operator Node (SON) Development
      • Generic Sidechain Docs
        • Quick joining GLADIATOR
        • Changes to Peerplaysjs-lib
        • Requirements Specification
        • Low Level Designs
          • bitcoin-deposit-handling-lld
          • bitcoin-operations-draft
          • bitcoin-sidechain-handler-lld
          • bitcoin-sidechain-multisig-bitcoin-wallet-and-bitcoin-addresses-pw
          • bitcoin-withdrawal-handling-lld
          • btc-address-scripting-mechanism
          • comparison-between-scenarios-for-handling-deposits-and-withdrawals
          • exchange-rate-list
          • generic-sidechain-deposit-hld
          • generic-sidechain-high-level-design
          • generic-sidechain-listener-hld
          • generic-sidechain-withdrawal-hld
          • refund-btc-mechanism
          • son-configuration
          • son-consensus-communication-and-transaction-signing-on-chain-lld
          • son-de-register-proposals-lld
          • son-objects-and-operators
          • son-rewards-lld
          • son-voting-lld
          • son-wallet-list_sons-lld
          • creation of a multi-sig bitcoin address lld
          • claiming initial son vesting lld
          • changeover and SON maintenance scenarios lld
          • user-sidechain-addresses-mapping
          • wallet-commands-for-son
        • Functional Specs
          • SON Configuration
          • SON rewards
          • SON Voting and Consensus
          • SONs switchover scenarios
          • SON Status Operations & Monitoring
          • Proposals
          • SON Smart Contracts
      • Bitcoin Sidechain Docs
        • Functional Specs
          • btc-refunds
          • voting-and-consensus
          • son-switchover
          • son-rewards
          • son-proposals
          • son-configuration
          • heartbeat-monitoring
          • BTC Transaction Processing & Signing
          • Bitcoin Withdrawal Handling
          • Bitcoin Deposit Handling
          • SON Multisig Bitcoin Wallet
      • Hive Sidechain Docs
        • Functional Specs
          • HIVE Deposit Handling
          • HIVE Withdrawal Handling
    • Peerplays DEX Development
      • Peerplays NEX
        • Functional Specifications
          • NEX-FS01 Dashboard Page
            • NEX-FS12 ETH-SONs Deposit/Withdraw Functionality
          • NEX-FS02 Login and Account Creation
          • NEX-FS03 Menus and Nav
          • NEX-FS04 Notifications
          • NEX-FS05a Market Page (alpha)
          • NEX-FS05 Market Page
          • NEX-FS06 Profile Page
          • NEX-FS07 Wallet Functions
          • NEX-FS08 App Settings
          • NEX-FS09 Blockchain Page
          • NEX-FS10 GPOS Page
          • NEX-FS11 WhaleVault Integration
      • Requirements Specification
      • Functional Specs
        • Asset Info Page and Asset Lists
        • Dashboard
        • Exchange Page
        • Login and Account Creation
        • User Account Page
        • Voting Page
    • SPK Network
      • Functional Specs
        • Claimdrop Snapshot Functional Specification
        • Initial Claimdrop Functional Specification
    • NFT Development
      • NFT Store
        • NFT Store User Stories
        • NFT Store UI HLD
        • NFT Store Requirements Specification
        • Functional Specifications
          • APP-FS01 App Header
          • APP-FS02 App Body
          • APP-FS03 App Footer
          • APP-FS04 App Navigation
          • APP-FS05 Wallet Functions
          • APP-FS06 App Home Page
          • APP-FS07 Account Page
          • APP-FS08 Browse View
        • App Page List
        • Requirement Traceability Matrix
    • Operation IDs List
    • Sidechain Flow Diagram (HIVE coin)
    • Sidechain Flow Diagram (Bitcoin)
    • Sidechain Flow Diagram (Ethereum coin)
    • TradeHands Explorer
      • User Personas
      • User stories
      • APP-FS01 Detailed View
      • Draft: APP-FS02 Front Page
      • APP-FS03 Collection Details Page
    • Grafana
      • Grafana Installation
      • Install Grafana Behind reverse proxy
      • Loki Installation
      • Promtail agent Installation
      • Grafana Explorer
    • NEX Deployment & Configuration
      • NEX Deployment
      • NEX - Blockchain API configuration
      • Deploying NEX in a HA scenario
    • API Node
      • MarketCap API
    • TOTO Application
      • FS-Subscription Plan
      • FS-Achievements
  • Development Workflow Docs
    • Development Workflow
  • Other Documentation
    • Peerplays Home
    • Community Docs
    • Infrastructure Docs
    • Site Reliability Engineering
Powered by GitBook
On this page
  • 1. Purpose
  • 2. Document Tracking
  • 2.1. Parent Document
  • 2.2. Categorization
  • 3. Scope
  • 3.1. Components
  • 4. Document Conventions
  • 5. Context
  • 6. Design Wire-frames
  • 7. Requirements
  • 7.1. App Navigation
  • 7.2. Universal Design Considerations
  • 7.3. Documents With Other App Navigation Requirements
  • 8. Appendix A: Glossary
  • 9. Appendix B: References
  • 9.1. Content Skeleton Loaders
  • 9.2. Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA)

Was this helpful?

Export as PDF
  1. Supporting & Reference Docs
  2. NFT Development
  3. NFT Store
  4. Functional Specifications

APP-FS04 App Navigation

The Peerplays NFT Store application functional requirements specification for the app navigation features.

PreviousAPP-FS03 App FooterNextAPP-FS05 Wallet Functions

Last updated 3 years ago

Was this helpful?

1. Purpose

The purpose of this functional specification (FS) document is to detail functional requirements for the Peerplays NFT Store application (the “app”) relating to the app navigation features from a business and user perspective.

App Component

Page Fragment

2. Document Tracking

2.1. Parent Document

This document is a child document of the NFT Store .

2.2. Categorization

This document relates to the following tags.

App Component

Page Fragment

3. Scope

This FS will describe the requirements and basic design for the app’s navigation features.

3.1. Components

Specific components and features covered in this FS include:

  • the app navigation layout and design elements

    • app navigation

    • universal design considerations

4. Document Conventions

For the purpose of traceability, the following code(s) will be used in this functional specification:

Code
Meaning

APP-FS04-#

App Component Requirement - App Navigation

The keyword shall indicates a requirement statement.

The keywords may, could, and should are not requirements but rather indicate items related to requirements that are worthy of consideration.

The following terms are used to describe specific users of the application:

  • Unauthenticated (not logged in) users are known as visitors.

  • Authenticated (logged in) users are known as peers.

The following terms are used to describe levels of user entitlement within the application:

  • A browser is view only (except for account creation and logging in) and used for visitors.

  • An enjoyer can interact with the market, including buying and optionally re-selling NFTs, but can’t make new NFTs.

  • A tenant can create NFTs and sell them in addition to what the enjoyer can do.

  • A client is an administrator level user with all entitlements.

5. Context

Navigation is a foundational user control within the app. It guides process flows and is a major factor of user-friendliness. Designing the app navigation also provides the opportunity to incorporate universal design principals to make the app accessible to everyone.

6. Design Wire-frames

The wire-frames listed below are meant to represent the application body page fragment in various states. These are provided to assist in understanding of what features may look like or their potential use. Final designs may be vastly different from these images.

7. Requirements

7.1. App Navigation

The app navigation:

APP-FS04-1: shall display navigation elements in a natural flow.

APP-FS04-2: shall, upon activation of a navigation element by the user, direct the user to the appropriate page or content within the app, if the user is authorized to view that content.

APP-FS04-3: shall, if the user is not authorized to view the content of a page for which they are attempting to navigate, redirect the user to a page they do have access to before the unauthorized page is reached. Unauthorized navigation can redirect users to any of the following:

  • a 404 or other error page

  • the app home page

  • help documents

  • the user’s profile page

  • the app login page

  • the app create account page

Navigation security can be handled with route guard patterns usually implemented in popular JavaScript frameworks like Next.js (React) or Angular.

APP-FS04-4: shall display only the navigation elements to the user for which their app role or granted entitlements allow them to access.

APP-FS04-5: shall, where appropriate, indicate to the user if content is in a loading state.

APP-FS04-6: shall display partially loaded content until all content is available for display to the user. This can be done with loading icons (spinners, etc.) and / or content skeleton loaders which are replaced by the incoming content.

See Appendix B for references regarding content skeleton loaders.

APP-FS04-7: shall open menus when menu headers are activated (with mouse or keyboard) and remain open until the user deliberately closes the menu. In other words, menus should not open or close based on mouse hover. Deliberately closing a menu can consist of one of the following:

  • activating the menu header again

  • actively passing the focus to another element (but not a child element) like another menu header or the app body

  • using a keyboard command to drop the element’s focus (like using the Esc key)

APP-FS04-8: shall indicate to the user when a navigation element is available for interaction by using one or more of the following:

  • mouse cursor changes

  • element style changes on mouse hover

  • element style changes on focus

  • element style changes on activation

  • element style changes on visited status

APP-FS04-9: shall, where appropriate, display icons along with text labels which correspond to the context of the navigation element (i.e. magnifying glass for search, soccer ball for the sports category, etc.)

APP-FS04-10: shall, upon the user activating a search query, send the user to a dedicated search page with all the relevant search results displayed.

APP-FS04-11: shall provide pagination controls to users for navigating lists of objects.

APP-FS04-12: shall provide options to users for sorting lists of objects.

APP-FS04-13: shall provide options to users for filtering lists of objects.

APP-FS04-14: shall provide options to users for changing the display of lists of objects (list view, grid view, etc.)

APP-FS04-15: shall not display or make use of a user’s personally identifiable information (PII) in unencrypted URI parameters.

APP-FS04-16: shall not transmit a user’s personally identifiable information (PII) over unencrypted networks.

APP-FS04-17: shall display social media links which have been configured in the admin dashboard.

APP-FS04-18: shall display navigation for marketplace categories which have been configured in the admin dashboard.

7.2. Universal Design Considerations

The app navigation, in the context of universal design:

APP-FS04-19: shall allow users the option of operating the app navigation using a keyboard.

APP-FS04-20: shall implement a consistent set of keyboard commands which enables a user to logically navigate app pages without the use of a mouse.

APP-FS04-21: shall allow users to focus and operate control elements (inputs, toggles, checkboxes, buttons, links, etc.) using a keyboard.

APP-FS04-22: shall clearly display element focus and activation.

APP-FS04-23: shall contain all appropriate metadata in the app code to enable assistive technologies (alt text, titles, labels, etc.)

APP-FS04-24: shall adhere to design guidelines which clearly define standard styles for navigation elements (links, buttons, etc.)

APP-FS04-25: shall indicate to the user if a link opens an external vs internal resource.

See Appendix B for references regarding keyboard interaction.

7.3. Documents With Other App Navigation Requirements

8. Appendix A: Glossary

Term
Meaning

RS

Requirements Specification

FS

Functional Specification

NFT(s)

Non-Fungible Token(s)

UI

User Interface

UX

User Experience

PII

Personally Identifiable Information

GDPR

General Data Protection Regulation

9. Appendix B: References

9.1. Content Skeleton Loaders

9.2. Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA)

Requirements Specification
APP-FS01 App Header
APP-FS03 App Footer
Everything you need to know about skeleton screens
WAI-ARIA Authoring Practices 1.2
Figure 1. Various examples of navigation states and features.