Skip to content
Razvan Deaconescu edited this page Feb 16, 2014 · 4 revisions

Enhanced 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 fills out the user and password.
  • The person presses on "login".
  • If the person and password are incorrect the user is redirected to the login page.
  • If the person and password are correct the application redirects the user to his control panel, administrator control panel or teacher control panel.

Termination condition: The person presses "Logoff" .

User logs off in vmchecker

Trigger: An authenticated teacher wants to logoff.

Precondition: The user is authenticated.

Scenario:

  • The teacher find the "Log off" and presses it.
  • The teacher is redirected to the login page.

Courses

Add courses

Trigger: An administrator wants to add a new course.

Scenario:

  • The administrator clicks on "Courses" and then on "Add course"

  • The administrator has to fill the following mandatory fields:

  • add holidays*

    • The administrator can add as many holidays as he wants.
    • The administrator fills in the start and end date of the holiday.
    • The application doesn't permit the administrator to fill in a wrong date.
  • upload active from*

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

    • The administrator fills in the date.
    • The application doesn't permit the administrator to fill in a wrong date.
  • course name*

    • The teacher fills in the course name.
  • course id*

    • The teacher fills in the course id.
    • There can't be two courses with the same id.

[virtual machine]

  • virtual machine id*

    • The administrator fills in the machine id.
  • virtual machine path*

    • The administrator fills in the virtual machine path.
  • virtual machine guest user*

    • The administrator fills in the virtual machine guest user.
  • virtual machine guest password*

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

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

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

    • The administrator fills in 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 fills in the kernel message.
  • Host command

    • The administrator can see that this is not a mandatory field.
    • The administrator fills in 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 fills 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 fills in 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 fills in 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 fills in the minimum time between two submissions
  • Timeout
    • This field has a default value and the administrator can see it.
    • The administrator fills in 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 presses on "Create course", 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 clicks on "Courses" and then on "Configure course"
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator presses on "Add holiday" and fills in the holiday's start and finish date.
  • The administrator presses on "Save changes".
  • 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 clicks on "Courses" and then on "Configure course"
  • 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 presses on "Remove holiday".
  • The administrator can see that the holiday has been removed.
  • The administrator presses on "Save changes" and the page is refreshed.

###Configure course - change tester

Trigger: An administrator wants to configure a vmchecker tester.

Scenario:

  • The administrator clicks on "Courses" and then on "Configure course"
  • 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 presses on "Save changes" 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 filled 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 clicks on "Courses" and then on "Configure course"
  • 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 presses on "Save changes", 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 clicks on "Courses" and then on "Configure course"
  • The administrator selects the course.
  • The administrator can see all the course options with their previous values.
  • The administrator changes the "upload active until" date, hour and minute. -The administrator presses on "Save changes", 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 clicks on "Courses" and then on "Configure course"

  • The administrator selects the course.

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

  • The administrator presses on "Add virtual machine" and he 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 fills the fields and presses on Save changes. 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 clicks on "Courses" and then on "Configure course"

  • 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 presses on "Save changes", 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 clicks on "Courses" and then on "Configure course"
  • The administrator selects the course.
  • The administrator selects the virtual machines he wants to remove.
  • The administrator presses on "Remove", 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 clicks on "Courses" and then on "Configure course"
  • 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 presses on "Save changes", 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 clicks on "Assignments" and then on "Add assignments".

  • The teacher has to fill the following mandatory fields:

  • Assignment's id*

    • The teacher fills in the assignments id.
    • The application searches if there isn't another assignment with the same 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 fills in the assignment's title.
  • statement link*

    • The teacher fills in 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 fills in the link to where the students upload their homework.
  • Assignment storage base path

    • The teacher fills in the "Assignment storage base path"
  • Assignment storage query user

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

    • The **user sees a field that shows "unpack: yes".
  • The teacher presses on "Add assignment", 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 clicks on "Grade" or the administrator hovers over "Teacher" and clicks on "Grade"
  • 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 corrected have a "*" at the end of their name.
  • The teacher can see and modify the contents of grade.vmr.
  • The teacher can see all the files uploaded by a student and can view their contents.
  • The teacher presses on "save", 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 clicks on "Grade" or the administrator hovers over "Teacher" and clicks on "Grade".
  • 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 clicks on "resubmit".

###View student's profile

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

Scenario:

  • The teacher hovers over "Student management" and clicks on "Add/Remove student from course" or the administrator hovers over "User management" and clicks on "Grant rights"
  • The teacher accesses the "" 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher changes the old deadline to a new deadline by modifying the deadline's date, hour and minute.
  • The teacher presses on "Save changes".
  • 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 completed 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher selects the virtual machines he wants to add.
  • The teacher presses on "Save changes".
  • 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 completed 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher selects the virtual machines he wants to remove.
  • The teacher presses on "Save changes".
  • 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 completed 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher finds the "timeout" field and changes the current amount of seconds.
  • The teacher presses on "Save changes".
  • 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 completed 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher changes the assignment's title.
  • The teacher presses on "Save changes".
  • 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 completed 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 clicks on "Assignments" and then on "Configure assignments".
  • The teacher selects the assignment he wants to configure.
  • The teacher changes the current statement link.
  • The teacher presses on "Save changes".
  • 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 completed 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 teacher role to a user

Trigger: An administrator wants to add a new teacher.

Scenario:

  • The administrator presses on "User management" and then on "Add a teacher".
  • 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 presses on "Add user" and the page is refreshed.
  • If the administrator has filled all the fields he will see a green text that says "Teacher successfully added"
  • If the administrator has not filled all the fields he will see a red text that says "Please fill all the fields"

###Add a new static user

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

Scenario:

  • The teacher selects the course to which he wants to add the new user.
  • The teacher fills in the desired username.
  • The teacher fills in the desired password.
  • The teacher fills in the "Confirm password field".
  • The teacher presses on "Add user" and the page is refreshed.
  • If the teacher has filled all the fields he will see a text that says "User successfully added".
  • If the teacher hasn't filled all the fields he will see a text that says "Please fill in all the fields".
  • If the teacher hasn't filled the same password in the fields: "Confirm password" and "Password" he will see a red text that says "Password and confirm password have different values".

###Add a student to a course

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

Scenario:

  • The teacher presses on "Student management" and then on "Add a student to a course".
  • The teacher selects the student.
  • The teacher selects the course he wants to add the student.
  • The teacher presses on "Save changes", the page is refreshed and the teacher can see the following message "The user has been successfully added".
  • If the teacher has left an empty field then 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

Scenario:

  • The administrator selects the user he wants to grant administrator rights.
  • The administrator presses on "Grant rights".
  • The page is refreshed and if the administrator has selected an user he will see a text that says "Administrator successfully" added.
  • 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 hovers over "User management" and clicks on grant rights.
  • 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 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 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 selects the course and assignment.
  • The student selects the desired zip archive.
  • The student presses on upload 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 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 clicks on "Resubmit assignment".
  • 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 clicks on "View upload history".
  • 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 clicks on "View upload history".
  • 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 clicks on "View results".
  • 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.