PROJECT: TeaPet


Overview

TeaPet is a personal manager application for primary school form teachers. The user interacts with it via a Command Line Interface (CLI) along with a Graphical User Interface (GUI) created with JavaFX. The application is written in Java.

Summary of contributions

  • Major enhancement: Implemented the Student Academics Feature of TeaPet

    • What it does: Assist the user in storing and tracking information of the classes' academic progress. The user can create assessments, submit and mark students' work.

    • Justification: This feature is essential for the teacher to monitor the classes' progress and manage the submission and marking of assessments better. Whenever the user assigns an assessment to the class, he/she would want to track who has submitted their work, and also track which submission she has marked. The user can key in when a student has submitted work for a specific assessment, and store the scores when they have marked a submission. Teachers can now easily see which students have not submitted and chase them for their work without having to count one by one to find the missing submission. Furthermore, being able to store marks in academics can allow the user to see which submission has not been marked and each student’s academic progress. They can also view general statistics for each individual assessment and export them, so as to prepare for end-of-year teacher performance evaluation. This academics feature will manage all information about students' studies.

    • Highlights: This feature calculates some general statistics of the class such as average score and median score. Teachers can export the statistics and table of all assessments and student submissions into a csv file for reference and sharing. They are also able to filter the list of assessments to only homework or exam assessments.

  • Minor enhancement: Assisted in the development the UI/UX (User Interface / User Experience) of TeaPet

    • What it does: Enhances the view of TeaPet to be easier to process and the users' experience to be more intuitive.

    • Justification: An interface design that is easy on the eyes and intuitive to use is one of the key things to attract users to try the product and retain its users.

    • Highlights: This enhancement drastically improved the AddressBook3 interface. The colour palette of the whole interface is mostly monochrome so as to give TeaPet a more cohesive look. On the top header, the active panel will be highlighted with a bright orange to allow easy identification of which feature the user is using.

  • Minor enhancement:

    • Refactored the student related commands into a student command as a standalone feature.

  • Code contributed: [Functional code and Test code]

  • Other contributions:

    • Project management:

      • In charge of code quality of others' PR. Will comment on other’s PR if there are any improvements or suggestions to make.

      • Checks the documentation of the overall code and ensures that it is uniform.

      • Restructured many commands and model folders, improving the overall packaging of TeaPet.

    • Enhancements to existing features:

      • Edited existing tests for existing features to involve more features (Pull requests #110)

      • Improved code quality of existing features (Pull requests #110, #225, #261)

      • Major refactoring of certain commands and packaging (Pull requests #229)

      • Wrote additional tests for existing features to increase coverage by 9.3%(Pull requests #279, #283, #301)

    • Documentation:

      • Updated User Guide to include Academics Feature (Pull requests #235, #236)

      • Updated Developer Guide to include Academics Feature (Pull requests #270, #276, #283)

      • Updated Developer Guide to include Project Description, User Stories, Use Cases. (Pull requests #51, #283)

    • Community:

      • PRs reviewed (with non-trivial review comments): #65, #76, #95)

      • Reported bugs and suggestions for other teams in the class (examples: 1, 2)

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.


Student Academics [Done by Lee Hui Ting]

TeaPet’s Class Progress Tracker is able to keep tabs on the class' academic progress. You will be able to store data of every student’s subject grades with this feature. Thereafter, there will be a csv file available for export displaying the progress of individual students as well as the entire class.

Display all Assessments and Academics Help: academics

Shows all assessments in the academics list and a guide for academic commands.

Format:

academics

Expected Outcome:

The Academics tracks all your assessments and student submissions.
[HELP ON ACADEMICS COMMANDS]
1. Add assessment: academics add desc/ASSESSMENT_DESCRIPTION type/TYPE date/DATE
2. Edit assessment: academics edit INDEX [desc/ASSESSMENT_DESCRIPTION] [type/TYPE] [date/DATE]
3. Delete assessment: academics delete INDEX
4. Submit assessment: academics submit INDEX [stu/STUDENT_NAME]...
5. Mark assessment: academics mark INDEX [stu/STUDENT_NAME-SCORE]...
6. Filter assessment BY TYPE: academics ASSESSMENT_TYPE (only homework or exam)
7. View academics report: academics report
8. Export academics report: academics export
Type the following commands for more info!
academics view
Figure 1. After using the academics command

Add Assessment: academics add

Adds an assessment into the academics list.

Format:

academics add desc/ASSESSMENT_DESCRIPTION type/TYPE date/DATE

Adds a new assessment with the given attributes.

The assessment description cannot be empty. Date should be written in YYYY-MM-DD format.

Example:

  • academics add desc/Math Graphs Homework type/homework date/2020-05-02
    Adds an assessment "Math Graphs Homework" into the academics list along with its deadline.

Expected Outcome:

Added assessment:
Homework: Math Graphs Homework
Due by: 2020-05-02

Edit Assessment: academics edit

Edits an assessment from the academics list.

Format:

academics edit INDEX [desc/ASSESSMENT_DESCRIPTION] [type/TYPE] [date/DATE]

Edits the assessment with the given attributes.

The assessment description cannot be empty. Date should be written in YYYY-MM-DD format.

Example:

  • academics edit 4 desc/Chemistry Compounds Assignment
    Edits assessment in the academics list with the new description "Chemistry Compounds Assignment".

Expected Outcome:

Edited Assessment:
Homework: Chemistry Compounds Assignment
Due by: 2020-04-30

Delete Assessment: academics delete

Deletes an assessment from the academics list.

Format:

academics delete INDEX
  • Deletes the assessment with at the given index.

    Index should be a positive integer and be a valid index.

Example:

  • academics delete 5 Deletes the student at index 5.

Expected Outcome:

Deleted Assessment:
Homework: Chemistry Compounds Assignment
Due by: 2020-04-30

Submit Assessment: academics submit

Submits student(s) work for a specific assessment.

Format:

academics submit INDEX [stu/STUDENT_NAME]...

Submits work for the assessment with at the given index.

Index should be a positive integer and be a valid index.
Student whose work has already been submitted cannot be submitted again.

Example:

  • academics submit 3 stu/Freddy Zhang
    Submits "Freddy Zhang" for the assessment at index 3.

  • academics submit 3 stu/Freddy Zhang stu/Gerren Seow
    Submits "Freddy Zhang" and "Gerren Seow" for the assessment at index 3.

Expected Outcome:

Academics submitted following submissions:
Freddy Zhang
Gerren Seow

Mark Assessment: academics mark

Marks student(s) work for a specific assessment.

Format:

academics mark INDEX [stu/STUDENT_NAME-SCORE]...

Marks work for the assessment with at the given index.

Index should be a positive integer and be a valid index.
Only the submissions of students whose work has already been submitted can be marked.

Example:

  • academics mark 3 stu/Freddy Zhang
    Marks "Freddy Zhang" for the assessment at index 3.

  • academics mark 3 stu/Freddy Zhang-90 stu/Gerren Seow-80
    Marks "Freddy Zhang" and "Gerren Seow" for the assessment at index 3.

Expected Outcome:

Academics marked following submissions:
Gerren Seow: 80
Freddy Zhang: 90

Filter Assessments by type: academics homework/exam

Filters assessment list by either homework or exam.

Format:

academics ASSESSMENT_TYPE

Example:

  • academics homework

Expected Outcome:

Academics now displays all HOMEWORK assessments

Example:

  • academics exam

Expected Outcome:

Academics now displays all EXAM assessments
academics exam view
Figure 2. After using the academics exam command

View Academics Report: academics report

Generates an academic report for each assessment.

Format:

academics report

Expected Outcome:

Academics now displays the report of each assessment.
academics report view
Figure 3. After using the academics report command

Export Academics Report: academics export

Exports the academic report into a csv file.

Format:

academics export
  • Academics report will be exported to a .csv file format, which is located in the data folder in the same directory. The file is named "studentAcademics.csv".

Expected Outcome:

Academics are exported to studentAcademics.csv in the data folder.

Student Academics Commands

Here are the commands to manage student academics. They require the prefix academics.

Table 1. Student Academics commands of TeaPet.

Command

Format

Expected outcome

academics add

academics add desc/DESCRIPTION type/TYPE date/DATE

Adds an assessment into the academics list

academics edit

academics edit INDEX [desc/DESCRIPTION] [type/TYPE] [date/DATE]

Edits an assessment in the academics list

academics delete

academics delete INDEX

Deletes the assessment at the given index

academics submit

academics submit INDEX [stu/STUDENT_NAME]…​

Submits student(s) work for the assessment at the given index

academics mark

academics mark INDEX [stu/STUDENT_NAME-SCORE]…​

Marks student(s) work and stores the scores for the assessment at the given index

academics filter

academics homework/exam

Displays either all homework or exam assessments in the academics list

academics report

academics report

Displays the report for all assessments

academics export

academics export

Exports the academics report into a .csv file

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.

Student Academics feature

This student academics feature stores and tracks the class' academics progress.

The academics feature consists of the following commands namely,

  • AcademicsCommand - Displays the most updated student academics details.

  • AcademicsAddCommand - Adds a new assessment to the academic list.

  • AcademicsEditCommand - Edits the details of a particular assessment.

  • AcademicsDeleteCommand - Deletes the specified assessment from academics.

  • AcademicsSubmitCommand - Submits students' work to the specified assessment.

  • AcademicsMarkCommand - Marks students' work of the specified assessment.

  • AcademicsDisplayCommand - Displays either homework, exam, or the report of student academics.

  • AcademicsExportCommand - Exports the academics information into a .csv file.

All academics commands share similar paths of execution. The commands when executed, will interface with the methods exposed by the Model interface to perform the related operations (See logic component for the general overview).

AcademicsClassDiagram
Figure 4. Class Diagram for Academics Commands

Class Overview

The class diagram below will depict the structure of the Academics Model Component.

AcademicsModelClassDiagram
Figure 5. Class Diagram for Academics Model

Academics Add Command

Implementation

The following is a detailed explanation of the operations which AcademicsAddCommand performs.

Step 1. The AcademicsAddCommand#execute(Model model) method is executed which takes in a necessary assessment description, type and date.

Format for adding an assessment is academics add desc/ASSESSMENT_DESCRIPTION type/TYPE date/DATE.

Step 2. As assessment names should be unique, the Model#hasAssessment(Assessment assessment) method will check if the assessment already exists in UniqueAssessmentList#assessments. If a duplicate assessment is found, a CommandException will be thrown.

Step 3. Subsequently, the Model#getFilteredStudentList() method will then be called, to set the student submission tracker for the assessment.

Step 4. The method Model#addAssessment(Assessment assessment) will then be called to add the assessment. The command box will be reflected with the AcademicsAddCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

If the format or wording of AcademicsAddCommand contains error(s), an unknown command or wrong format error message will be displayed.

The following sequence diagram summarizes what happens when a user executes an AcademicsAddCommand:

academics add command sequence diagram
Figure 6. Academics Add Command Sequence Diagram

Academics Edit Command

Implementation

The following is a detailed explanation of the operations which AcademicsEditCommand performs.

Step 1. The AcademicsEditCommand#execute(Model model) method is executed which edits the details of the specified assessment. The method checks if the index defined when instantiating AcademicsEditCommand(Index index, EditAssessmentDescriptor editAssessmentDescriptor) is valid. Since it is optional for users to input fields, the fields not entered will reuse the existing values that are currently stored and defined in the Assessment object.

User needs to input at least 1 field of assessment to edit.

Step 2. A new Assessment with the newly updated values will be created which replaces the existing Assessment object using the Model#setAssessment(Assessment target, Assessment editedAssessment) method. However, if new assessment results in a duplicate assessment in UniqueAssessmentList#assessments, a CommandException will be thrown.

Step 4. The command box will be reflected with the AcademicsEditCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

Academics Delete Command

Implementation

The following is a detailed explanation of the operations which AcademicsDeleteCommand performs.

Step 1. The AcademicsDeleteCommand#execute(Model model) method is executed which deletes the assessment at the specified index. It checks if the Index is defined as an argument when instantiating the AcademicsDeleteCommand constructor.

The Index must be within the bounds of UniqueAssessmentList#assessments.

Step 2. The Assessment at the specified Index is then removed from UniqueAssessmentList#assessments observable list using the Model#delete(Assessment assessment) method.

Step 3. The command box will be reflected with the AcademicsDeleteCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

Academics Submit Command

Implementation

The following is a detailed explanation of the operations which AcademicsSubmitCommand performs.

Step 1. The AcademicsSubmitCommand#execute(Model model) method is executed which submits students' work for the assessment at the specified index. The method checks if the Index is defined as an argument when instantiating the AcademicsSubmitCommand constructor.

The Index must be within the bounds of UniqueAssessmentList#assessments.

Step 2. Subsequently, the Model#hasStudentName(String studentName) method will then check if the given student exists in UniqueStudentList#students. Also, Model#hasStudentSubmitted(String studentName) method checks if the student has already submitted their work for the specified assessment. If the student does not exist or has already submitted their work, a CommandException will be thrown.

Step 3. The students' Submission will then be submitted to the specified Assessment using the method Model#submitAssessment(Assessment assessment, List<String> students).

Step 4. The command box will be reflected with the AcademicsSubmitCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

The following activity diagram summarizes what happens when a user executes an AcademicsSubmitCommand:

AcademicsSubmitActivityDiagram
Figure 7. Academics Submit Activity Diagram

Academics Mark Command

Implementation

The following is a detailed explanation of the operations which AcademicsMarkCommand performs.

Step 1. The AcademicsMarkCommand#execute(Model model) method is executed which marks students' work and stores the students' scores for the assessment at the specified index. The method checks if the Index is defined as an argument when instantiating the AcademicsMarkCommand constructor.

The Index must be within the bounds of UniqueAssessmentList#assessments.

Step 2. Subsequently, the Model#hasStudentName(String studentName) method will then check if the given student exists in UniqueStudentList#students. Also, Model#hasStudentSubmitted(String studentName) method checks if the student has yet to submit their work for the specified assessment. If the student does not exist or has not submitted their work, a CommandException will be thrown. Furthermore, the score should be between 0 and 100 inclusive, otherwise CommandException will also be thrown.

Format for marking a students' work is academics mark INDEX stu/STUDENT_NAME-SCORE.

Step 3. The students' Submission will then be marked and its score will be stored in the specified Assessment using the method Model#markAssessment(Assessment assessment, List<String> students).

Step 4. The command box will be reflected with the AcademicsMarkCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

Aspect: Allow submission along with marking
  • Current Implementation: Marking a submission that has not be submitted is not allowed.

    • Pros: Clearer and prevents confusion in data.

    • Cons: Harder to implement and the user will have to submit students' work separately.

  • Alternatives Considered: Marking an unsubmitted work will also submit it for the assessment.

    • Pros: The user can just submit students work using the mark command, giving them less to type.

    • Cons: Prone to confusion of submitting and marking commands.

Aspect: Allow customizable total score of assessments
  • Current Implementation: Setting the total score for a submission is not allowed. (Total score for all submissions will be 100.)

    • Pros: Easy to implement and maintains uniformity of data.

    • Cons: User cannot set different total scores for assessments and have to grade it to a 100 weightage.

  • Alternatives Considered: Setting the total score for a submission is allowed.

    • Pros: User can make set different total scores to different assessments according to its requirements.

    • Cons: Hard to implement and could result in inconsistency of data.

Academics Display Command

Implementation

The following is a detailed explanation of the operations which AcademicsDisplayCommand performs.

Step 1. The AcademicsDisplayCommand#execute(Model model) method is executed which can either take in no arguments or a 1 word argument indicating the type of display to show.

Other than the default display (no arguments needed), there are only 3 types of displays: homework, exam, and report.
Format: academics or academics DISPLAY_TYPE

Step 2. Depending on the display type, the command box will reflect its respective AcademicsDisplayCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.
Example. homework type display will reflect AcademicsDisplayCommand#MESSAGE_HOMEWORK_SUCCESS

If the academics list is empty, a blank page will be shown.
If the wording of the AcademicsDisplayCommand contains error(s), an unknown command message will be displayed.

Academics Export Command

Implementation

The following is a detailed explanation of the operations which AcademicsExportCommand performs.

Step 1. The AcademicsExportCommand#execute(Model model) method is executed which exports the content of Academics into a csv file in the data folder.

Format of the command is: academics export.

Step 2. The command box will be reflected with the AcademicsExportCommand#MESSAGE_SUCCESS constant and a new CommandResult will be returned with the message.

Step 3. Subsequently, the CommandResult will be processed by the MainWindow in the UI component and generate a studentAcademics.csv in the data folder of the current directory


Appendix A: User Stories

Priorities: High (must have) - * * *, Medium (nice to have) - * *, Low (unlikely to have) - *

Priority As a …​ I want to …​ So that I can…​

* * *

new user

see usage instructions

refer to instructions when I forget how to use the App

* * *

competent form teacher

add students

add new students to the class list

* * *

form teacher

delete a student

remove students that I no longer need

* * *

lazy form teacher

find a student by name

locate details of students without having to go through the entire list

* * *

form teacher doing their job

take the attendance of my students

know who is present for my class

* * *

organised form teacher

have a schedule tracking my events

know what I need to attend/do in a day

* * *

diligent form teacher

maintain of a list of students who have completed my homework

know who has not submitted my homework

* * *

caring form teacher

take down notes for student’s behavior

track the behaviour of my students

* * *

hard working form teacher

see the scores of my class

track the academic progress of my class

* * *

lazy form teacher

sort students by alphabetical order

locate a student easily

* * *

form teacher

update the details of my students

make necessary changes to my student’s particulars

* * *

well prepared form teacher

maintain emergency contacts of my students

know who to contact in case of emergency

* * *

form teacher

be able to view the available dates in chronological order that contains administrative information of the class

know which are the available dates that I can view

* * *

form teacher

view the administrative information of the class on a specific date

access the required administrative information

* *

form teacher

be able to view my assessment list by the latest date

know which are the more urgent or overdue assessments to monitor

* *

form teacher

view the academic statistics of my class

know the academic progress of my students

* *

form teacher

set different colours to my events

see clearer what type of events I have

* *

form teacher

specify if a student is late or absent for class

know why my student is absent

* *

form teacher

hide private contact details by default

minimize chance of someone else seeing them by accident

* *

caring form teacher

export academic statistics into a printable file

share and discuss the student’s academic progress with their parents

* *

caring form teacher

export behavioural notes into a printable file

share and discuss the student’s behaviour with their parents

* *

form teacher

keep track of the sitting arrangement of the class

students who change their seats unknowingly

* *

form teacher

record the temperature of students

track the health of my students

*

form teacher

get feedback from other teachers teaching the students of my class

better understand the progress of the class

Appendix B: Non Functional Requirements

  1. Should work on any mainstream OS as long as it has Java 11 or above installed.

  2. Should be able to hold up to 500 students without a noticeable sluggishness in performance for typical usage.

  3. A teacher with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish majority of the tasks faster using commands than using the mouse.

  4. TeaPet should be used only for a teacher handling his/her own form class, not by any other teachers.

  5. TeaPet should be able to work without internet access.

  6. The teacher should be able to familiarise himself/herself within half an hour of usage.

{More to be added}

Use case: UC09 - Display students' academic progress

MSS

  1. User enters the command to display academic progress of students.

  2. TeaPet displays the academic progress in chronological order.

    Use case ends.

Extensions

  • 1a. Command is invalid.

    • 1a1. TeaPet shows an error message.

      Use case ends.

Use case: UC10 - Add assessment to academics

MSS

  1. User enters command, together with an assessment description, type and date.

  2. TeaPet adds the new assessment and its details to the academics list.

  3. TeaPet displays feedback to the user that a new assessment to the academics list.

    Use case ends.

Extensions

  • 1a. Assessment is invalid.

    • 1a1. TeaPet shows an error message.

  • 1b. Assessment details keyed by user are invalid.

    • 1b1. TeaPet shows an error message.

      Use case ends.

Use case: UC11 - Edit assessment

MSS

  1. User specifies which assessment, using its index in the academics list, and what details he/she wants to edit in the command line.

  2. TeaPet edits the assessment’s details in the academics list as instructed by the commands.

  3. TeaPet displays feedback to the user that the assessment has been edited, followed by the changes made.

    Use case ends.

Extensions

  • 1a. Edited assessment is invalid.

    • 1a1. TeaPet shows an error message.

      Use case ends.

  • 1b. Assessment details keyed in by user are invalid.

    • 1b1. TeaPet shows an error message.

      Use case ends.

Use case: UC12 - Delete assessment

MSS

  1. User specifies which assessment, using the index, he/she wants to remove.

  2. TeaPet removes the assessment from the class list.

  3. TeaPet displays feedback to the user that the assessment is being removed.

    Use case ends.

Extensions

  • 1a. Assessment index entered by user is invalid.

    • 1a1. TeaPet shows an error message.

      Use case ends.

Use case: UC13 - Submit student’s work for assessment

MSS

  1. User specifies which assessment and student, using index and name respectively, that he/she wants to submit work to.

  2. TeaPet submits the student’s work to the assessment from the academics list.

  3. TeaPet displays feedback to the user that the following student’s work has been submitted to the assessment.

    Use case ends.

Extensions

  • 1a. Assessment index entered by user is invalid.

    • 1a1. TeaPet shows an error message.

      Use case ends.

  • 1b. Student name is invalid.

    • 1b1. TeaPet shows an error message.

      Use case ends.

  • 1c. Student has already submitted their work.

    • 1c1. TeaPet shows an error message.

      Use case ends.

Use case: UC14 - Marks student’s work for assessment

MSS

  1. User specifies which assessment and student, using index and name respectively, that he/she wants to mark.

  2. TeaPet marks and stores the submission’s score to the assessment from the academics list.

  3. TeaPet displays feedback to the user that the following student’s work has been marked and stored to the assessment.

    Use case ends.

Extensions

  • 1a. Assessment index entered by user is invalid.

    • 1a1. TeaPet shows an error message.

      Use case ends.

  • 1b. Student name is invalid.

    • 1b1. TeaPet shows an error message.

      Use case ends.

  • 1c. Student has yet to submit their work.

    • 1c1. TeaPet shows an error message.

      Use case ends.

Manual Test: Class Academics

  1. Adding an assessment to academics

    1. Prerequisites: The scheduler already contain an assessment with description "Math Differentiation Homework", type "homework", date "2020-03-23".

    2. Test case: academics add desc/Math Integration Homework type/homework date/2020-03-23
      Expected: An assessment with the description Math Integration Homework is added to academics.

    3. Test case: `academics add desc/ `
      Expected: An error message is shown due to invalid command.

    4. Test case: academics add desc/Math Integration Homework type/ date/2020-03-23
      Expected: An error message is shown due to invalid assessment type.

    5. Test case: academics add desc/Math Integration Homework type/homework date/
      Expected: An error message is shown due to invalid assessment date.

    6. Test case: academics add desc/Math Integration Homework type/homework date/2020/03/04
      Expected: An error message is shown due to invalid assessment date.

  2. Editing an assessment in academics.

    1. Test case: academics edit 1 desc/Chinese Spelling Practice
      Expected: First assessment in the academics list is updated with new description. Only the description should be modified.

    2. Test case: academics edit 1 desc/Chinese Spelling Practice type/exam date/2020-03-04
      Expected: First assessment in the academics list is updated with new description, type and date.

    3. Test case: academics edit 1 desc/
      Expected: An error message is shown due to invalid assessment description.

    4. Test case: academics edit 1 desc/Chinese Spelling Practice type/assignment
      Expected: An error message is shown due to invalid assessment type.

    5. Test case: academics edit 1 date/2020/03/04
      Expected: An error message is shown due to invalid assessment date.

  3. Deleting an assessment

    1. Test case: academics delete INDEX where INDEX is a valid index.
      Expected: Assessment will be deleted if the given index is valid. The status message either displays that the specified assessment has been deleted or show that the index given is invalid.

    2. Other incorrect delete commands to try: academics delete Expected: Status bar displays invalid command and incorrect command format message.

  4. Submitting a student’s work for an assessment

    1. Test case: academics submit INDEX stu/Simon_Lam where INDEX is a valid index and Simon Lam is an existing student in TeaPet.
      Expected: Simon Lam’s work will be submitted to the specified assessment if the given index is valid. The status message either displays that the student’s work has been submitted or show that the index given is invalid.

    2. Other incorrect submission commands to try: academics submit Expected: Status bar displays invalid command and incorrect command format message.

  5. Marking a student’s work for an assessment

    1. Test case: academics mark INDEX stu/Simon_Lam-90 where INDEX is a valid index and Simon Lam is an existing student in TeaPet who scored 90 for the given assessment.
      Expected: Simon Lam’s work will be marked and his score of 90 will be stored in the specified assessment if the given index is valid. The status message either displays that the student’s work has been marked or show that the index given is invalid.

    2. Other incorrect marking commands to try: academics mark Expected: Status bar displays invalid command and incorrect command format message.

  6. Exporting academic statistics into .csv file.

    1. Test case: academics export
      Expected: A file named studentAcademics.csv should be created in the data folder of the same directory in which TeaPet is installed.

PROJECT: PowerPointLabs


{Optionally, you may include other projects in your portfolio.}