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
Tasks Identified
ng 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
Proposed Solution
1. DeadlineType Model Implementation
Create a new DeadlineType model to properly define and manage different types of deadlines.
Database Schema
CREATE TABLE deadline_types (
id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL UNIQUE,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);
Deadline Type Definitions
1: submission - Student work submission deadlines2: review - Peer review deadlines3: teammate_review - Team member evaluation deadlines (NEW)5: metareview - Meta-review deadlines (kept for backwards compatibility)6: drop_topic - Topic drop deadlines7: signup - Course/assignment signup deadlines8: team_formation - Team formation deadlines (clean up duplicate ID 10)11: quiz - Quiz completion deadlines
2. DueDate Model Refactoring
Current Problems
- Too many class methods
- Limited instance-level functionality
- No permission checking capabilities
- Poor separation of concerns