Entity Relationship Diagram#

Business Logic#

Image

The key entities are:

  • Person: represents a human user of the system
  • Organization: an entity that is responsible for data stored by its users

Key relationships are:

  • Membership: manages privileges between persons and organizations

Organizations provide support for a contractual relationship and record the acceptance of legal statements/documents. Through subscriptions, an organization can order features or capacity upgrades that go beyond the default feature set.

A person can be a member of none, one or more organizations. The membership grants privileges on the organization in the form of roles. An organization must always have at least one member with role Organization.Admin.

Some data is accessible exclusively to organizations:

  • organizations can set "sticky" information on the membership, such as an employee number, to allow them to understand and manage relationships better

This may be extended in the future, for example:

  • organizations can invite persons to join
  • tags can be defined and assigned, empowering structuring of information

Use cases#

Persons and Organizations#

Image

  • A person can be a member of none, one or more organizations.
  • A person can create a new organization, implicitly becoming a member of that organization with role Organization.Admin.
  • A person with role Organization.Admin can act on behalf of the organization.
  • The organization can assign, update or remove persons and their roles.

Future use cases:

  • An organization can invite a person to join the organization.
  • A person can accept the invitation to join an organization.