FEATURE |
POINTS |
Overall Program Structure |
20 |
Previous code still works! |
5 |
Correct “main” handling |
5 |
Separate database per user |
5 |
Good modularity and exception handling |
5 |
Database Creation and Update Functionality |
40 |
Correctly connect to and create database
- Use a separate database name per user
- Catch and display any exceptions
|
8 |
Update chats table when new chats start
- Store information in chats table correctly
- Catch and display any exceptions
|
8 |
Update messages table when each message goes by
- Store information in messages table correctly
- Catch and display any exceptions
|
8 |
Keep intersections tables (messages_in_chats, members_in_chats) correctly updated
- Add a row to messages_in_chats to indicate each new message associated with a chat
- Add a row to members_in_chats for each member associated with a chat
- Catch and display any exceptions
|
8 |
Correctly shutdown database
- Correctly issue SHUTDOWN command
- Close the database statement and connection
- Catch and display any exceptions
- Optional: checkpoints throughout the code
|
8 |
Database Retrieval and Display Functionality |
40 |
Produce a list of all members you’ve ever chatted with
- Fetch all distinct members from the chats table
- Display correctly in a window
- Catch and display any exceptions
|
15 |
Display history window for selected user
- Fetch all chats associated with a given user
- Fetch all messages associated with those chats
- Display in an organized way in a window
- Catch and display any exceptions
|
25 |
Bonus |
10 |
Fancy (and correct!) schema above and beyond what’s been provided |
5 |
“Statistics” UI giving details about average numbers of chats, average numbers of messages per chat, average chat duration, etc. |
5 |