CSC/ECE 517 Fall 2014/final E1475 nrnn
Requirements
1) The instructor should be able to create assignments which can utilize intelligent assignment of teams. (It is an optional feature)
2) The instructor should be able to set the maximum number of bids a team can make. Defaulted to 3.
3) The teams should be able place bids on different topics limited to the number set by the instructor for these assignments
4) The teams should be able to prioritize their bids.
5) The instructor should be able to kick off the intelligent assignment of teams.
Sequence Diagram
Fig 1. shows the sequence diagram for this feature. The diagram shows the sequences exclusive to this feature. Therefore, this assumes that the assignment/exercise has already been created. Once the assignment is created, the instructor can enable the 'intelligent assignment of teams' feature for the particular assignment. Enabling this feature would give the students(or teams) a view to place bids on the topics they like. They can associate each bid with a priority. Once the deadline has passed, the instructor can kickoff the process which performs the automatic assignment. This would in turn start assigning teams with topics based on their bid preferences.
UML Design
Database Design
In order to meet other solution requirement, new tables are added. The following diagram represents the new tables in crow foot's notation. The user table mentioned is not new and is present only to explain the field - ownerId.
Earlier, all the information in AssignmentTopic and AssignmentTopicMetadata tables were in a single table called signup_topics. However, there was lot of data redundancy observed and we also required to add an extra field in the table signup_topics. Therefore, we decided to store the topics related to an assignment according to the diagram. One caveat to this design is that all the topics for an assignment are considered equal in terms of category, maximum bids allowed and maximum bids in waiting list.
The table bid is supposed to store all the bids on the topics with their priority. The owner of the bid will be recorded too. Current requirement is to have only one bid per topic by an owner. Therefore, we could have (ownerId, topicId) pair as the primary key. However, in order to support multiple bids in a future sceario, we have used a field id as the primary key.
Apart from the mentioned new tables, we will be using pre-existing tables to meet our requirements and design.
References
<references/>