Requirements met: P7
The messenger service will be comprised of a client and server. The client will be the same for all users, but depending on the user type will dictate what functionality they are allowed to them, the functionality will also be re-enforced by the server to prevent abusive users. The user types will be added as needed. Buy default there will be 3 user types: student instructor and administrator. Only administrators may make changes to the system. All the user types will be the same except for permissions they have.
Students
Instructors
Administrator
The server will have no GUI, it will use a client with an administrator account in order to do changes.
Client Functionality
Requirements met: A1, A2, A3, A4, A6, A11, P1, P4, R7
The client will connect to the server when logging on and retrieve all the related courses and information and a contact list. The contact list will not be storied locally to ensure it is always up to date. A temporary cache of the contact list will be stored once logged in and removed upon logging out. By right clicking on a username you can select “change username” from the menu and can change the persons username on your client. This name change will not be visible to other people. Any changes to user names or notes will be only stored locally.
The client will display you current username (usernames will be shown by default; upon a mouse over the e-mail address will be displayed). Above the username there will be a menu with options you can click on (described above). The main part of the client will be the contact list.
The contact list will be divided into groups, subgroups, and so on. The top level groups will be the class that you are in. The second level will be the instructor for your section of the class. The teacher group will also be treated like a username, so that it is easy to know who the teacher is. Below the teacher group there will be the students of that section. Students will have the option of displaying other sections for a class that they are in if there are any.
A user may add groups to any level of the groups, but only for their own contact list. This is so the students can better organize between friends and group members. Instructors have the ability to add groups either locally or globally for any class they are teaching. A global group will be visible to all people. Double clicking on a public/global group will join the chat room for that group.
Next to each course group will be an icon that can be clicked to visit a course web page. In front of a group will be a +- icon to compress or expand a user list, to make managing long lists easier.
User accounts are connected to a person's net-link ID. By default the only personal available is your name and email address. Users have the option to update their own profile to whatever information they are comfortable sharing. The client will periodically check a user's e-mail account for new mail. If there is a new message then a small notification window will appear briefly in the bottom right corner with the sender and subject lines displayed. This will disappear after a few seconds. The number of unread messages will be displayed in the status bar of the client at the bottom.
Requirements Met: P5
The Client will consist of several parts. The first part will be the User name and menu section.
The menu will be at the top of the program and will have the following elements
File |
Options |
Status |
The Username part will Display the username in a font size of at least 22. To the right of the Username will be your current status. This will be in a size of at least 16.
The status bar(the bottom) will display what mode you are currently in as well as how many unread messages you have.
To the left of the contact list will be the tab elements. The tabs will be used for things such as Scheduling. When a tab is clicked the contact list area will change to the appropriate section. Tabs will be the same size but will have different colors to be easily distinguishable. There will be initially two tabs, one for messaging and another for schedule.
The contact list area is the majority of the client. It will take up all the space that is available. The usernames will be displayed, aligned to the left. The font size will be 14 for headers and subheadings will be 13. For usernames the size will be 12. To the left of a group will be a +- to collapse or expand a group. To the Right of the username will be an icon that may be clicked on to take the user to the course webpage.
Requirements Met: A12, R2, R8, P8
Messages will be limited to 2 people. Chat rooms will not have a user limit, however if there is no one in the room it will be destroyed, except if it is a public chat room.
The message window will be composed of a conversation window / buffer, the display picture and user name of the person in which you are conversing.
Below the conversation window and picture there will be a input box for you to type in. When a user starts typing, a signal is sent to the server. The server then sends a signal to the other client informing the user through a message in the status bar of the client that the user is typing a message. While the user is typing a message, when the space bar is pressed the text from the last space bar or return will be sent to the server and then to the other client. The return key will also do the same thing. If a user does not wish to send a message word by word, the use of quotation marks (“ “) can be used to send a series of words or strings. However this will not change how the return key functions. The return key will still send the current message to the server. If the user still wishes to send a string of words then they will have to start the line with quotation marks again. The message will be displayed on the conversation window as one line until the return key is pressed. If the other user starts typing a message it will be displayed below the current message being typed. Formatting of the conversation will be automatically adjusted to account for longer messages while usurers are simultaneously typing.
When a client receives a message, if it is the first message of the conversation a small window appears in the lower right hand corner displaying the user name of the person who sent the message. A audible signal will play to inform the user that they have received a message. This audible signal will have a default sounds but the user may change the sound in the options menu. After a few seconds the window disappears and a small icon will appear to the left of the user name of the person who sent the message. The user name will also begin to flash bold then plain, until the message has been read. If a user clicks on the message window when it first appears then the conversation window appears. If they do not then the user must double click on the username who sent the message to bring up the conversation window.
The message client will be very light, and will only have the necessary elements. It will have the standard windows/OSX title bar. The message client will be broken up into two parts. The main part of the message client will be the conversation window. This window will take up the majority of the message window. Below the bottom of the conversation window will be an input box that will be multi lined supported. The input box will take up Seventy five percent of the width of the conversation window. The other space below the conversation window will be for the send button. This will be just a plain default styled button.
The second part of the message window will be about twenty percent of the overall width. At the top will be a place for the person's picture to be displayed. The picture size will be locked to a specific size. Right below the image will be the person's user name; below that will be the person's status; and below that a icon will be displayed if the user is typing a message.
Requirements Met: R1
Chat rooms will function like messages except that there will be no picture displayed. Only the user names will be shown. If the user wishes they may right click on the user name and select “view profile” to see more information. Instructors and administrators will have a moderator icon next to the left of their name in the user list of the room. This will let people know who is a moderator/Instructor. The messaging will work the same way that it does in single message chat, except that it will be sent to multiple recipients. To create a private chat room, a user can right click on a username and select “invite to chat”. This will then bring up the chat room window. A user may invite multiple people to a chat.