Final Report - natafaye/assignment-tracker GitHub Wiki

Description

Our app is an online homework management system that facilitates submission and tracking of homework assignments.

The workflow of the app begins when an instructor creates a class, and gives the randomly generated code for that class to his or her students, who use it to create an account.

The instructor creates assignments for a particular class, and the assignments show up on students' home pages.

Student Home

Students can then click the submit button, which takes them to a page where they can enter the text of their assignment and submit it to the instructor.

Submit Assignment Page

The instructor sees the submission progress for the class for each current assignment on his or her homepage. The Past Assignments page looks very similar to the home page, but it shows assignments that are past their due date and should now be graded.

And submission contents for each student can be viewed through the Submissions page, which is accessed by clicking the view button for an assignment.

Submissions Page

Clicking the View button for a submission brings up the contents of the submission which the instructor can then read and grade.

Database Schema

We are using a relational database with four tables: Users, Courses, Assignments, and Submissions.

Entity Relationship Diagram

The general hierarchy is that Courses have Assignments that have Submissions. Users also have Submissions, since each submission is unique to a User and Assignment.

Users and Courses have two separate one-to-many relationships between them. Each User is connected to a Course or Courses through one of these relationships, not both, depending on the role of the User. Users with an Instructor role use the top relationship, and have any number of courses that they teach. Users with a Student role use the bottom relationship, and are in exactly one course.

Future Work

If we had more time, we would have added the following features.

Core Features:

  • Flesh out user accounts
    • Make the pages for creating user accounts functional, rather than creating an account when a user first logs in
    • Allow users to change their name and email
    • Allow users to delete their account
    • Add an admin account that manages user accounts and permissions
  • Add more functionality for instructors
    • Allow editing and delete classes.
    • Allow removing a student from a class
    • Allow editing and deleting assignments
    • Add the ability to give students textual and video feedback to submissions
  • Add more functionality for students
    • Allow submitting uploaded files rather than a textual response
    • Allow viewing and editing previous submissions
    • Add the ability to view feedback from instructor

Other Features:

  • Display notes for students who miss class
  • Allow instructors to make an assignment for multiple classes
  • Flag and handle late assignments
  • Allow students to be in multiple classes
  • Allow an instructor to create a reading contest for one or more classes, where students can track the books they have read and the instructor can see their progress