Skip to content

Per User Collections and Multi User Support (Design Considerations)

timoreimann edited this page Jun 4, 2012 · 1 revision

Goal

This page is supposed to describe the design considerations needed to implement per-user music collections on the bassis of multi-user support. The feature was initially brought forward along issue #52.

The document is open for discussion.

Motivation

As of now, Supersonic does not allow for user-specific music collections. Instead, users may specify directory locations and upload music into (followingly titled directory-based collections). This has several drawbacks:

  • Users need to be aware of directory layouts
  • Users may access and modify each other's music files

Consequently, a future version of Supersonic should enable users to maintain individual music collections. At a minimum, this requires introducing multi-user support which Supersonic lacks yet.

Basic Requirements

The following describes a list of basic requirements needed to implement the desired functionality:

  • Users shouldn't be required to specify music directories, both for convenience and security reasons. Instead, Supersonic should choose directory names automatically from the user ID. (User names are inappropriate as they may be subject for change).
  • Facilitating separate music collections is just one usage scenario for multi-user support (another simple one would be user-specific start pages as suggested in issue #56). Thus, any basis implementation should be open for future multi-user extensions (especially with regards to how the database model is modified).
  • Particularly, one such extension that will inevitably be required after allowing for per-user collections is music sharing. This is a logical consequence from the fact that the existing directory-based collections inherently supports sharing. (In fact, it is the only mode of operation.) Music sharing raises numerous additional design questions, however, which calls for providing a rather basic implementation in the initial phase.
  • Playlists should be handled in a user-specific fashion as well. (As of today, there's a global playlist which all users can modify.)
  • Once per-user music collections are available, continuing to support directory-based collections seems misleading from a UX perspective, which is why it support should be removed completely. However, a migration strategy must be provided then to allow for transitioning to the new schema. There are several strategies to think of with varying degree of complexity and the extent to which they make sense (examples: Collection duplication, migration wizard, require the admin to deal with it manually) that deserve further elaboration.