-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Objective
The aim of this final sprint and feature implementation is to integrate the grading aspect with the assignment submission process. Our goal is to ensure that when a student submits an assignment, it can be easily evaluated by the teacher without any issues. Even though the grading function is working, we've encountered difficulties with the assignment component, stopping us from testing both together. Also I want to be able to sort each column in the grade table using insertion sort as that is what we used for the Algorythmic performance. Additionally, I intend on creating a method for file submission similar to Canvas. Initially, I'll focus on text files, and expand to support images, PDFs, and finally videos, prioritizing them based on file size.
Tasks
- Integrate Grade with Assignment
- NEW IDEA/Feature: file submissions, currently assignment only takes the user's name, other contributors, and a link
- The files will be organized in the server based on who submitted it and the assignment
The Plan
Requirements:
- File Submissions
- Grade table sorting
- Grade Assignment Integration
Grades
- Sorting each column in grade table
File Submissions (start with text and expand to images, pdf, videos, etc.)
- saving files in backend
Files.copy(file.getInputStream(), filePath);
- renaming files appropriately
String originalFileName = file.getOriginalFilename();
String fileExtension = originalFileName.substring(originalFileName.lastIndexOf("."));
String baseFileName = name + "_" + assignment;
String newFileName = baseFileName + "_" + counter + fileExtension;
- Fetching files
- Display Files on frontend
Grade Integration with Assignment Code
- self explainitory
Database Schema:
- Create files table
- Add a fileName field to the files table to store the original file name of the submission.
- Add a fileData field (BLOB, Binary Large Object) to store the actual binary of the file and maybe be able to recontruct the binary back into the file.
Schedule
- Monday: Share my progress with team and create ideation visuals. Check in with Colin to see his progress with solving his issue. Start work on file submissions.
- Tuesday: Work with Colin (assignment person) to integrate my grade part with his assignment part.
- Wednesday: finish file submissions (fetch and display on frontend)
- Thursday: Integrate my file submissions with Colin's assignment
- Friday: Finalize project and test entire project with group
What I'm going to show
- Show submitting a file
- Show file appearing in backend in the table and as an actual file
- Show fetching of file and displaying it in frontend
Progress
May 20
- File submissions Frontend
- Added textboxes for name and assignment and a file selection prompt
- name and assignment will be taken from the logged in user and the assignment from a drop down once those features are complete
- Once submit button is pressed, it posts name, assignment, and file to backend
- Added textboxes for name and assignment and a file selection prompt
- File submissions Backend
- stores file name and BLOB data in file table
- renames file name_assignment_num.extension
- stores files in their own directory based on name and assignment
Untitled.video.mp4
May 24
- File submissions Frontend
- Added a new page 'Assignment Viewer'
- Has a dropdown with all the submissions in it
- Once the assignment is selected, it displays the file that was submitted
- supports images, videos, pdfs, and text files
- Added a new page 'Assignment Viewer'
- File submissions Backend
- Got rid of BLOB and replaced it with the path that the file is stored.
- To display, I am setting the file container to http://localhost:8091/volumes/uploads/*assignmentname*