Skip to content

Add support for custom forms for submission #169

@jessehartloff

Description

@jessehartloff

Feature request


Currently, assignments can have and number of NCAGs and a text field is available for each NCAG for submissions. This functionality should be expanded to offer instructors the option to create custom forms for submissions.

For the first iteration of this feature, instructors should be able to create forms with questions of the following types:

  • Text field (The current functionality)
  • Text Area (For longer answers)
  • Multiple choice with radio buttons
  • Multiple choice with a drop down

For each question, instructors should have a way to add text for the question itself. Each question may or may not have an NCAG associated with it.

The process of creating an assignment should involve:

  • Create the assignment and select, via check box, if the assignment is meant for file upload submissions. If it accepts files, it can also accept form questions
  • Create all the problems
  • Create all the form questions
  • Add any number of CAGs and/or NCAGs. Each NCAG specifies which problem it grades

All 4 of these steps are completely independent. For example, right now creating an NCAG automatically creates a form question for that problem. These should be separate actions in case an instructor wants a from question without an NCAG (eg. student selects the language they used which will be read by a CAG -or- collecting ungraded/manually graded info). For UX purposes, creating a form question or an NCAG should also create the problem if it doesn't exist (By having the front end make multiple API calls)

When a submission is made, all form answers are added to a JSON object and the file (If it exists) is uploaded to the server. The server runs all NCAGs on their specified form answers. The file AND form answer JSON are sent to Tango/Leviathan to run all CAGs (Instructors have the option to write a CAG for their form submission in case they need something more that regex String matching).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions