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