Skip to content
cosmin1123 edited this page Aug 30, 2012 · 55 revisions

User Stories for vmchecker User Interface

User stories would be grouped by concepts used as sections below.

* - marks a mandatory field.

User login and logout

User stories regarding the login and the logout .

User authenticates in vmchecker

Trigger: A person finds out about the application, and wants to login.

Scenario:

  • The person provides the user name and password.
  • The person uses the "login" functionality.
  • If the username and password are incorrect the person is redirected to the main page.
  • If the username and password are correct the application redirects the person to his control panel, administrator control panel or teacher control panel.

User logs off in vmchecker

Trigger: An authenticated user wants to logoff.

Precondition: The user is authenticated.

Scenario:

  • The user uses the logoff capability.
  • The user is redirected to the main page.

Courses

Add course

Trigger: An administrator wants to add a new course.

Scenario:

  • The administrator accesses the "Add course" form.

  • The administrator has to fill the following mandatory fields:

  • add holidays*

    • The administrator can add as many holidays as he wants.
    • The administrator provides the start and end date of the holiday.
  • upload active from*

    • The administrator provides the date.
    • The application doesn't permit the administrator to fill in a wrong date.
  • upload active until*

    • The administrator provides the date.
    • The application doesn't permit the administrator to give a wrong date.
  • course name*

    • The administrator provides in the course name.
  • course id*

    • The administrator provides the course id.
    • There can't be two courses with the same id.

[virtual machine]

  • virtual machine id*

    • The administrator provides the machine id.
  • virtual machine path*

    • The administrator provides the virtual machine path.
  • virtual machine guest user*

    • The administrator provides the virtual machine guest user.
  • virtual machine guest password*

    • The administrator provides the virtual machine guest password.
  • virtual machine base path*

    • The administrator provides the virtual machine base path.
  • virtual machine guest shell path*

    • The administrator provides the virtual machine guest shell path.
  • virtual machine guest home in bash*

    • The administrator provides the virtual machine guest home in bash.
  • upload build script*

    • The administrator browses for the build script on his pc and selects it.
  • upload run script*

    • The administrator browses for the run script on his pc and selects it.
  • Kernel messages

    • The administrator can see that this is not a mandatory field.
    • The administrator provides the kernel message.
  • Host command

    • The administrator can see that this is not a mandatory field.
    • The administrator provides the host's command.
  • The administrator may also change the following inputs that have default values:

  • Course type:

    • This field has the default value "Free" and the administrator can see it.
    • The administrator can change the value to "Only added users", meaning that only users added by a teacher to this course can submit assignment solutions or "Free", meaning that all the users can submit solutions to this course.

[Assignment default values]

  • Total points
    • This field has a default value and the administrator can see it
    • The administrator provides the total points of each assignment.
  • Penalty Weights
    • This field has a default value and the administrator can see it
    • The administrator can't fill in a penalty weight greater than the value of "Total points".
    • The **administrator provides the penalty weights
  • Penalty limit
    • This field has a default value and the administrator can see it
    • The administrator can't fill a value greater than total points
    • The administrator provides the penalty limit.
  • minimum time between two successive submissions by the same student
    • This field has a default value and the administrator can see it
    • The administrator provides the minimum time between two submissions
  • Timeout
    • This field has a default value and the administrator can see it.
    • The administrator provides the "Timeout".

[storer]

  • hostname
    • The administrator can see that this field has a default value and may change it for this course.
  • Username
    • The administrator can see that this field has a default value and may change it for this course.
  • SSHId
    • The administrator can see that this field has a default value and may change it for this course.
  • Known hosts file
    • The administrator can see that this field has a default value and may change it for this course.

[vmchecker tester]

  • tester name

    • The administrator can see that this field has a default value and may change it for this course.
  • Vmtype

    • The administrator can see that this field has a default value and may change it for this course.
  • tester hostname

    • The administrator can see that this field has a default value and may change it for this course.
  • Username

    • The administrator can see that this field has a default value and may change it for this course.
  • Queue path

    • The administrator can see that this field has a default value and may change it for this course.
  • The administrator uses the "Create course" functionality, the page is refreshed

  • If the administrator has completed all the mandatory fields and a course with the same id hasn't been created for this year the user will see a green text that says "The course has been successfully created".

  • If the administrator has not completed all the mandatory fields he will see a red text that says "Please complete all the mandatory fields".

  • If another course with the same id has been created this year then the user will see a red text that says: "The course has already been created. Do you want to configure it?"

###Configure course - add holiday

Trigger: An administrator wants to add a new holiday to a course.

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator uses the "Add holiday" functionality and provides the holiday's start and end date.
  • The administrator uses the "Save changes" functionality.
  • The page is refreshed and the administrator can now see that a new holiday has been added to the course.

###Configure course - remove holiday

Trigger: An administrator wants to remove a holiday from a course

Scenario:

  • The administrator accesses the "Configure course" form
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator selects the holiday he wants to remove and uses the "Remove holiday" functionality.
  • The administrator can see that the holiday has been removed.
  • The administrator uses the "Save changes" functionality and the page is refreshed.

###Configure course - change tester

Trigger: An administrator wants to configure a vmchecker tester.

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator changes the "tester name*", "Vmtype*", "tester hostname*", "Username*" and "Queue path*".
  • The administrator uses the "Save changes" functionality and the page is refreshed.
  • If all mandatory fields have been completed then the administrator will see a green text that says "Changes successfully made" and can now see that the tester's information has changed.
  • If the administrator hasn't provided values for all the mandatory fields then he will see a red text "Please fill all the mandatory fields".

###Configure course - upload active from

Trigger: An administrator wants to change "upload active from".

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator changes the "upload active from" date, hour and minute. -The administrator uses the "Save changes" functionality, the page is refreshed and he can see that the upload active from has been changed.

###Configure course - upload active until

Trigger: An administrator wants to change "upload active until".

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator provides the new "upload active until" date, hour and minute. -The administrator uses the "Save changes" functionality, the page is refreshed and he can see that the "upload active until" has been changed.

###Configure course - add virtual machines

Trigger: An administrator wants to add a virtual machine to a course.

Scenario:

  • The administrator accesses the "Configure course" form.

  • The administrator selects the course.

  • The administrator can see all the course options with their previous values.

  • The administrator uses the "Add virtual machine" functionality and gets the following fields:

  • virtual machine id

  • virtual machine path

  • virtual machine guest user

  • virtual machine guest password

  • virtual machine base path

  • virtual machine guest shell path

  • virtual machine guest home in bash

  • upload build script

  • upload run script

  • Kernel messages

  • Host command

  • The administrator provides the fields values and uses the "Save changes" functionality. The page is refreshed and if there isn't another machine with the same id then he can see that the tester machine has been added.

  • If there is another machine with the same id, then the administrator will see a red text that says: "Machine id already exists".

###Configure course - Configure virtual machine

**Trigger:**An administrator wants to configure a virtual machine to a course.

Scenario:

  • The administrator accesses the "Configure course" form.

  • The administrator selects the course.

  • The administrator selects the virtual machine he wants to configure.

  • The administrator can see and change all the virtual machine options:

  • virtual machine path

  • virtual machine guest user

  • virtual machine guest password

  • virtual machine base path

  • virtual machine guest shell path

  • virtual machine guest home in bash

  • upload build script

  • upload run script

  • Kernel messages

  • Host command

  • The administrator uses the "Save changes" functionality, the page is refreshed and he can see the changes he made to the virtual machine's options.

###Configure course - Remove virtual machine

Trigger: An administrator wants to remove a virtual machine.

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator selects the virtual machines he wants to remove.
  • The administrator uses the "Remove" functionality, the page is refreshed and he can see that the virtual machine has been removed.

###Configure course - change course type

Trigger: An administrator wants to add a new holiday to a course.

Scenario:

  • The administrator accesses the "Configure course" form.
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator selects the new course type. -The administrator uses the "Save changes" functionality, the page is refreshed and he can see that the course type has been changed.

Assignments

###Add assignment

Trigger: A teacher wants to add a new assignment.

Scenario:

  • The teacher accesses the "Add assignment" form.

  • The teacher has to provide the following mandatory fields:

  • Assignment's id*

    • The teacher provides the assignments id.
    • If there is another assignment with the same id the teacher can see a red text that says "Assignment's id already exists".
  • Deadline*

    • The teacher selects the deadline's date, hour and minute.
  • Select machine*

    • The teacher selects a virtual machine tester added to the course by an *administrator.
  • timeout*

    • The teacher can see that this field has a default value but he may change it.
  • Assignment title*

    • The teacher provides the assignment's title.
  • statement link*

    • The teacher provides the assignment's statement link.
  • upload assignment's tests*

    • The teacher uploads the assignment's tests.
  • The teacher may also fill the following optional fields:

  • Wait for vmware tools timeout

    • The teacher selects the number of seconds.
  • Revert to snapshot

    • The teacher selects between yes and no.
  • Delay between tools and tests

    • The teacher selects the number of seconds.
  • Assignment's storage type.

    • The teacher can select between a normal storage type and a large storage type.
  • If the administrator has selected large in the assignment's storage he can see the following fields:

  • Assignment's storage port

    • The teacher can see that the default value of this field is 22.
    • The teacher can change the value if he uses another port.
  • Assignment storage host

    • The teacher provides the link to where the students upload their homework.
  • Assignment storage base path

    • The teacher provides the "Assignment storage base path"
  • Assignment storage query user

    • The teacher provides the "Assignment storage query user"
  • unpack archive: yes

    • The **user sees a field that shows "unpack: yes".
  • The teacher uses the "Add assignment" functionality, the page is refreshed and if the teacher has completed all the mandatory fields then the course is created and he can see a text that says "Assignment successfully created".

  • If the teacher hasn't completed all the mandatory fields then he will see a text that says "Please complete all the mandatory fields".

Evaluate assignment

Trigger: A teacher or an administrator wants to evaluate a student's assignment.

Scenario:

  • The teacher accesses the "Grade" form.
  • The teacher selects the course.
  • The teacher selects the assignment.
  • The teacher can see the selected course and assignment name.
  • The teacher selects the student.
  • All the students that had their assignment evaluated have a "*" at the end of their name.
  • The teacher can see and modify the comments and grades of a student's assignment.
  • The teacher can see all the files uploaded by a student and can view their contents.
  • The teacher uses the "Save" functionality, all the changes are made and the page is refreshed.

###Resubmit student's assignment

Trigger: A teacher or an administrator wants to resubmit a student's assignment.

Scenario:

  • The teacher accesses the "Grade" form.
  • The teacher selects the course.
  • The teacher selects the assignment.
  • The teacher can see the selected course and assignment name.
  • The teacher selects the student.
  • All the students that had their assignment evaluated have a "*" at the end of their name.
  • The teacher uses the "resubmit" functionality.

###View student's profile

Trigger: A teacher or an administrator wants to see a student's profile.

Scenario:

  • The teacher accesses the "Add/Remove student from course" form.
  • The teacher selects the student.
  • The teacher can see all the student's data.

###Configure assignment - change deadline

Trigger: A teacher wants to change an assignment's deadline.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher provides a new deadline date, hour and minute.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

###Configure assignment - add virtual machine

Trigger: A teacher wants to add a virtual machine to an assignment.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher selects the virtual machines he wants to add.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

###Configure assignment - remove virtual machine

Trigger: A teacher wants to remove a virtual machine from an assignment.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher selects the virtual machines he wants to remove.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

###Configure assignment - change timeout

Trigger: An teacher wants to change an assignment's timeout.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher provides the new value for the timeout.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

###Configure assignment - change assignment title

Trigger: A teacher wants to change an assignment's title.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher changes the assignment's title.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

###Configure assignment - change statement link

Trigger: A teacher wants to change an assignment's statement link.

Scenario:

  • The teacher accesses the "Configure assignment" form.
  • The teacher selects the assignment he wants to configure.
  • The teacher changes the current statement link.
  • The teacher uses the "Save changes" functionality.
  • The page is refreshed and if all the mandatory fields have values then the teacher will see a green text that says "Changes successfully made".
  • If the teacher hasn't provided values for all the mandatory fields then on the page refresh he will see a text that says "Please complete all the mandatory fields".

##User management

###Add a new static user

Trigger: A teacher wants to add a new student to a course.

Scenario:

  • The teacheraccesses the "Add static user" form.
  • The teacher provides the desired username.
  • The teacher provides the desired password.
  • The teacher provides the "Confirm password".
  • The teacher uses the "Add user" functionality and the page is refreshed.
  • If the teacher has provided values for all the fields he will see a text that says "User successfully added".
  • If the teacher hasn't provided values for all the fields he will see a text that says "Please complete all the fields".
  • If the teacher hasn't provided the same password in the: "Confirm password" and "Password" he will see a red text that says "Password and confirm password have different values".

###Add a teacher role to user.

Trigger: An administrator wants to add a teacher.

Scenario:

  • The administrator accesses the "Grant user rights" form.
  • The administrator selects the user he wants to grant teacher rights.
  • The administrator selects the courses over which he wants this teacher to have control.
  • The administrator uses the "Grant rights" functionality and the page is refreshed.
  • If the administrator has provided values for all the fields he will see a green text that says "User rights successfully granted"
  • If the administrator has not provided values for all the fields he will see a red text that says "Please fill all the fields"

###Add a student to a course

Trigger: A teacher wants to add a student to a course.

Scenario:

  • The teacher accesses the "Add/Remove student from a course" form.
  • The teacher selects the student.
  • The teacher selects the course he wants to add the student.
  • The teacher uses the "Save changes" functionality, the page is refreshed and the teacher can see the following message "Changes successfully made".
  • If the teacher hasn't provided values for all the fields he will see a message that says "Please fill all the fields".

###Add an administrator role to user

Trigger: An administrator wants to add an administrator user role

Scenario:

  • The administrator accesses the "Grant user rights" form.
  • The administrator selects the user he wants to grant administrator rights.
  • The administrator uses the "Grant rights" functionality.
  • The page is refreshed and if the administrator has selected an user he will see a text that says "Changes successfully made".
  • If the administrator hasn't selected any user he will see a text that says "Please select a user".

###Remove teacher role from user.

Trigger: An administrator wants to remove a teacher.

Scenario:

  • The administrator accesses the "Grant user rights" form.
  • The administrator selects the user he wants to remove the teacher rights.
  • The adeministrator unselects the courses over which the teacher has control.
  • The administrator uses the "Grant rights" functionality and the page is refreshed.
  • If the administrator has provided values for all the fields he will see a green text that says "User rights successfully granted"
  • If the administrator has not provided values for all the fields he will see a red text that says "Please complete all the fields"

###Remove a student from a course

Trigger: A teacher wants remove a student from a course.

Scenario:

  • The teacher accesses the "Add/Remove student from a course" form.
  • The teacher selects the student.
  • The teacher selects the course from which he wants to remove the student.
  • The teacher uses the "Save changes" functionality, the page is refreshed and the teacher can see the following message "Changes successfully made".
  • If the teacher hasn't provided values for all the fields he will see a message that says "Please fill all the fields".

###Remove an administrator role from a user

Trigger: An administrator wants to add an administrator user role

Scenario:

  • The administrator accesses the "Grant user rights" form.
  • The administrator selects the user he wants to remove the administrator rights from.
  • The administrator uses the "Grant rights" functionality.
  • The page is refreshed and if the administrator has selected an user he will see a text that says "Changes successfully made".
  • If the administrator hasn't selected any user he will see a text that says "Please select a user".

##Student stories

###Upload an assignment

Trigger: A student wants to upload an assignment.

Scenario:

  • The student accesses the "Upload assignment" form.
  • The student selects the course and assignment.
  • The student selects the desired zip archive.
  • The student uses the "Upload" functionality and the page is refreshed.
  • If the student hasn't selected an archive then he will see a red text "No archive selected"
  • If the student has selected an archive he can see that the archive has been uploaded and he can also see the date on which it was sent.

###View assignment results

Trigger: A student wants to see his grade on a certain assignment.

Scenario:

  • The student accesses the "View results" form.
  • The student selects the course and assignment.
  • The student can see his results, his mistakes, and the user that graded his homework.

###Resubmit assignment

Trigger: A student wants to resubmit an assignment.

Scenario:

  • The student accesses the "Resubmit assignment" form.
  • The student selects the course and assignment.
  • The student uses the "resubmit" functionality and the page is refreshed.
  • If the student hasn't selected a course or an assignment he will see a red text that says "Plese select an assignment".
  • If the student has selected the course and assignment he will see a green text that says "Resubmit successfull".

###View upload history

Trigger: A student wants to see all the uploads he made so far.

Scenario:

  • The student accesses the "View upload history" form.
  • The student selects the course and assignment.
  • The student can see all the uploads made so far and when they were last modified.

###Download an old uploaded assignment

Trigger: A student wants to download an old uploaded assignment.

Scenario:

  • The student accesses the "View upload history" form.
  • The student selects the course and assignment.
  • The student selects the old upload he wants and the download starts.

###View my profile

Trigger: A student wants to see his personal data.

Scenario

  • The student acceses his profile page.
  • The student can see his username, class, at what courses he is enrolled.

###View teacher's profile

Trigger: A student wants to see the profile of the teacher that evaluated his assignment.

Scenario:

  • The student accesses the "View results" form.
  • The student selects the course and assignment.
  • The student selects the teacher's name and can now see some of the teacher's personal data.