| FEATURE |
POINTS |
| Overall Program Structure |
20 |
| File “gui.py” that loads without error |
5 |
| Correct “main” handling |
5 |
| Determine current user and display it (e.g., in title bar) |
5 |
| Ability to “fake” current user (meaning: ability to run the program and set the current user name. You can do this either by allowing a username to be passed on the command line, or popping up a “login” dialog that lets the user enter the user name) |
5 |
| Basic GUI Functionality |
80 |
Working online user list
- Good layout
- Can “fake” list of online users
- Should handle many users correctly (scale, scroll, etc.)
|
20 |
Working chat invitation control
- Should retrieve selected user(s) from list
- May launch an “invitation pending” window
- May just launch the chat window directly
|
20 |
Working chat window
- Provides chat transcript
- Provides mechanism for entering new text
- Text entered locally is displayed in the transcript
- Window is dismissable
- Should show list of current members
|
20 |
| Multiple simultaneous chats should be supported |
10 |
Working invitation window
- Should provide controls to accept or reject an invitation
- Accept should launch a chat widow
- Reject should close window
- NOTE: since this first version won’t use the network, there should be some way to explicitly trigger the appearance of the invitation window. This could be a separate function in the gui.py file that I can call, or a button that launches it, etc.
|
10 |
| Bonus |
20 |
| Allow icons to be associated with users |
5 |
| “Buddy list” management |
5 |
| GUI richness/novelty |
10 |