Skip to content
Saurabh Joshi edited this page Jan 17, 2016 · 1 revision

Chat

Welcome to the Chat wiki!

Now with the obligatory GitHub template greeting out of the way, let's dive into the documentation of Chat.

User Interface

This documentation describes the user interface design of Chat. The reasons for this are to provide a language-agnostic of what Chat is, as well as to highlight any user interface flaws (instead of implementation flaws) and improve on them for all client apps (currently there is only a web version and an Android version).

Welcome screen

This is the first screen the user sees when opening the app. The welcome screen shows the title of Chat, as well as the following three text boxes:

  • Server URL
  • Username
  • Password

This is followed by a common action button that stays disabled until all text boxes are not empty. When the server URL is filled and the user changes to another text box, it should attempt to ping the server to validate that it is a valid server. When the username field is typed in, and the user changes to another text box, the action button should change its text from "Submit" to "Login" if it is an existing user, or "Sign Up" otherwise.

Menu screen

The menu screen has a list of rooms to be joined, as well as a list of friends.

Chat screen

This is the core mechanic of Chat. Consequently, it has the most complicated features when compared against other screens.

This screen consists of four features:

  • Title of room or friend
  • Chat messages
  • Who is typing
  • Expandable text box and send button

User profile screen

Shows a profile for a given user, whether it is the same user that is logged in, a friend, or any other user. Here it shows the date when they first joined as well as the date when they were last active. Using the time frame between the last active time and the current time, the app should indicate whether the user is online or not.

If the user is not the same as the logged in user, two buttons are shown on the screen: friend and block.

The text used for the friend button depends on the current state, and follows closely to Facebook's design. When a user is viewing another user's profile, then when:

  • they are not friends at all, then this button says "Add friend". When clicked, a friend request is sent.
  • that user had sent the friend request, then this button says "Cancel friend request". When clicked, the friend request is deleted.
  • that user had received the friend request, then this button says "Accept friend request". When clicked, these two users become friends. An additional button "Ignore" is added in case the user denies the friend request, and not let the other user know about it.
  • they are friends, then this button says "Remove friend". When clicked, these two users no longer become friends.

When the block button is clicked, then that user cannot become friends and sent friend requests are automatically ignored.

Settings screen

The settings screen allows users to modify their usernames and their passwords. It will also have privacy features such as block all users, disable user activity, or even disable viewing user profile activity altogether.

Clone this wiki locally