Grading Criteria for Project Phase 4 (Databases)

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