Requirement analysis Client - UserXXX/vCom GitHub Wiki

This page gives an overview of the requirements the client implementations shall meet when the project is finished.

Interface

  • easy to use, simple, clear
  • intuitive
  • fast responding, not lagging
  • similar to existing messaging apps (e.g. SMS)
  • similar on all mobile devices

Configuration

  • list of blocked users
  • setting for file downloads: always automatically / automatically if connected to WLan / never automatically
  • setting for calls: forbid calling me over mobile connections
  • minimum time messages are stored
  • configurable automatic export of chat history (archiving)
  • multiple languages (English, German)
  • setting for receiving messages and calls from unknown users: allow / prohibit
  • list of known servers with setting for auto login for each of them

Features

  • transferring messages
  • 2 user chats
  • group chats
  • groups have an administrator with the rights to add or remove users and managing their rights
  • rights are inherited to all group members if the old admin leaves the group
  • image transfer (scaling the images, only transferring the necessary amount of data)
  • file transfer
  • voice chat
  • video chat
  • connecting to multiple servers at the same time, giving each server an individual name
  • sharing identities over multiple devices (e.g. desktop PC, smartphone)
  • reporting users for tioxical behaviour
  • storing old messages
  • deleting (selected) messages
  • deleting all messages older than X
  • update notification / warning for outdated version
  • profile image (not size restricted, but scaled down to 128x128 px)
  • im- and export of messages with an optional password
  • one global friendlist/blocklist (synchronised with server)

Safety and security

  • on invite to a group, the admin shares the secret group key with the new user
  • key generation yields a unique key with high probability (>>99%)
  • encrypting all send data
  • password for app that is used to encrypt local chat history (optional)

Efficiency

  • mobile client: low power usage
  • no remarkable delay because of encryption (especially for calls), maybe not possible for file transfers
  • compressing all send data