Portability Requirements

The Portability requirements define the platforms where the system is expected to run on and function properly.

Definitions

Server software
The server software includes the principal Mall on Rails application server: the Rails backend, and the job server. It does not include the database or caching servers, though it is expected that these systems are already sufficiently portable.
Client software
The client software is the HTML, CSS, and JavaScript that make up the client-side experience of interacting with the Mall on Rails system as both a customer and a store owner.
Minimum viable experience
The customer shall be able to view collections and items, add items to their bag, update the quantities in their bag, remove items from their bag, and check out including facilitating a payment. The customer shall be able to sign in and sign out of an account, and register a new account.
The store owner shall be able to sign in, sign out, and perform basic L-CRUD operations where already defined on the following models: Item, Collection, Order, Shipment, Shipping Method.

Goals

  1. To allow Mall on Rails to be deployed in different environments based on administrator and store owner need.
  2. To ensure that future developments in the computing space can be leveraged by the Mall on Rails system.

Exclusions

  1. The server software will not be explicitly tested on Windows. If support for the Windows Server environment is required at a later time, this exclusion may be revisited.

Requirements

  1. The server software shall be written to be reasonably portable to any platform where a Ruby interpreter is available.
  2. The server software shall be tested on the following platforms before each formal release is made. No failures shall be present.
    1. Adélie Linux, x86_64.
    2. Adélie Linux, AArch64.
    3. Adélie Linux, PowerPC 64-bit.
    4. Darwin, AArch64.
    5. FreeBSD, x86_64.
    6. FreeBSD, AArch64.
  3. The system shall be accessible via both IPv4 and IPv6 protocols, utilising TCP and HTTP/1.1 with TLS 1.3.
  4. The client software shall run without layout issues, functionality issues, or JavaScript console errors, on the following browsers:
    1. Safari 15, 16, 17, and 18, on iOS, iPadOS, and the Mac OS.
    2. Chrome 123 and 131 on Windows 11.
    3. Edge 125, 130, and 135 on Windows 11.
    4. Firefox 128 on Windows 11, the Mac OS, and Adélie Linux x86_64.
  5. The client software shall provide a minimum viable experience for both customers and store owners on the following browsers:
    1. NetSurf 3.11 on Adélie Linux AArch64.
    2. Safari 18 on the Mac OS with JavaScript disabled.
    3. Firefox 128 on the Mac OS with Ghostery, Noscript, and uBlock Origin extensions enabled.