CSC/ECE 517 Fall 2025 - E2566. Finish DueDates
Introduction
Background
- This project aims to complete the implementation of the DueDate system in Expertiza. The current implementation consists mostly of class methods and lacks proper definition of different deadline types and permission checking functionality. This redesign will create a more robust, readable, and maintainable due date system.
Existing Components
- DueDate model with polymorphic parent association (Assignment/SignUpTopic)
- AssignmentDueDate and TopicDueDate subclasses
- Basic CRUD operations and sorting functionality
- Database schema with deadline_type_id field
Motivation
- Currently, there are some glaring issues with how due_dates was created in the first place. From the same table in the database and having old/redundant way of doing actions.
- No
DeadlineTypemodel to define different kinds of deadlines - Overuse of class methods making the code difficult to maintain
- Missing permission checking logic for user actions
- Incomplete deadline type definitions
- Duplicate team_formation entries in deadline_types table
- No clear separation of concerns