Technology Philosophy - jhhl/AUMI-Together GitHub Wiki

Technology Philosophy

AUMI Together is leveraging the 15 or so years of AUMI experience and ideas, combined with modern advances in computer and internet tech to accommodate the widest pool of AUMI participants. This is at a high level; follow links to Wiki pages with specifics as they are implemented.

As a side effect, Technologies and standards used , adapted, and created to make AUMI Together happen could also be used for other projects, such as talk boards, messaging systems, etc.

User facing design principles:

  • AUMI Together can be played easily in both self-contained or networked ways.
  • Once AUMI is launched, it should be possible to play it with a reasonable default setup immediately
  • Certain features will be considered advanced and unlocked explicitly.
  • there may be several kinds of clients, optimized for technology, accessibility, or even white-labeling.
  • Similarly, connecting securely and privately to a networked AUMI Session should be as simple as possible. User identification
  • AUMI Together will be able to go in and out of a configuration mode using tracked gestures
  • Those configuration screens will be made as simple as possible.
  • AUMI should be internationalized or at least ready for I18N in its UI, tutorials, and documentation.
  • design for visual impairment: large type, high contrast. Use Skins Skins to customize the UI.
  • design for reading impairment: Icons, consistent coloration and selection highlighting and possibly animated feedback
  • If you identify yourself with the server, your most recent Setup will be preserved there

Underlying Technology principles

  • Modularity in User Interface, Tracking tech, Instrument tech, Sound production tech, Conference tech
  • This should enable changes in technology and platforms. For instance, native interfaces and third party API access could be integrated into the Conferencing system.
  • Since conferencing involves identity, privacy concerns need to be addressed and available to all.
  • Transmissions and connectivity should be robust and expect dropouts and errors.
  • Low latency and low bandwidth options should be available.
  • The connectivity between users extends to sharing setups and instruments, both peer to peer as it is today and through the central connection.

Tutorial and Documentation principles

  • Organization of documentation should be modular in sections and adaptable for different products.
  • Ideally, documentation should be available contextually
  • Short videos or narrated slideshows should be part of each section
  • Develop tutorial programs so materials can be presented as seminars, onsite and remotely

Development principles

  • Source control of all client, admin, server, and third party source. Ideally, clients and servers should be able to be built with only a few stable dependencies.
  • Source control of all tutorial and branding assets
  • Feature/bug tracking and scheduling
  • Unit and modular testing
  • Periodic technology research for new and more efficient or cost effective tech options
  • Automated documentation of code, data streams, files, and APIs
  • Legal research into intellectual property

Outreach principles

  • Develop and build AUMI user communities for testing and user feedback
  • Develop and build technology communities and forums
  • Create a branding and marketing team and plan, within disabled and eldercare communities as well as general purpose
  • Create a social networking strategy and user outreach strategy

Feedback and maintenance

  • Establish responsibility for maintaining and paying for the server, domains, storage, third party tools
  • Establish a software maintenance team with redundant skill sets
  • Establish customer support and issue tracking system

Wiki Links: Technology outline