Project: JARVIS

JARVIS is a desktop application that allows a CS1101S TA to manage his/her students and tasks in an organised manner. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • New Feature: UI alerts user to timing clash between lessons
    • What it does: When the tutor tries to add a lesson that clashes with a lesson in the lesson list, the affected lesson would be highlighted in red.
    • Justification: The tutor can more easily identify the affected lesson without having to go through the entire list.
  • New Feature: Sorted student/task/lesson lists
    • What it does: Students in the student list are sorted alphabetically, while lessons and tasks are sorted in order of urgency. The lists remain sorted even after new items are added/old items are deleted.
    • Justification: It is easier to locate each student in the student list when it is sorted, and the tutor can easily see his urgent tasks/lessons at first glance without having to scroll down each list.
  • New Feature: Switching between different listviews with the list commands
    • What it does: Tutor can navigate to each expanded list with the corresponding list command (e.g. Expanded student list using the liststudent command) or to the default list with the listall command.
    • Justification: Tutor can easily access each of the expanded lists for his reference or switch back to the default view to view the truncated versions of all lists concurrently.
  • New Feature: UI for the Expanded Lesson List
    • What it does: Expanded lesson list displays detailed information for each lesson (i.e. attendance, participation, lesson notes).
    • Justification: Provides consolidated information for the tutor’s use when conducting lessons.
  • New Feature: UI for the Expanded Student List
    • What it does: Expanded student list displays detailed grade information for each student in the TA’s class.
    • Justification: Provides consolidated grade information for the tutor to easily keep track of student’s performances in the module.
  • New Feature: Recording student’s mastery check results with the mastery check command
    • What it does: Allows the tutor to record the students’ mastery check result.
    • Justification: Tutor can keep track of student’s mastery check completion statuses, a compulsory requirement for passing the module.
  • New Feature: Recording student’s grades with the grade command
    • What it does: Allows the tutor to record the students’ grades.
    • Justification: Tutor can keep track of student’s grades and identify weaker students who might need additional guidance.
  • Code contributed: RepoSense link

  • Project management:
    • Created issues for additional bugs discovered in app
  • Enhancements to existing features:
    • Revamp default view of the UI to display all 3 lists (student, lesson, task lists) concurrently
    • Styling with CSS to enhance the aesthetics of the UI
  • Documentation:
    • User Guide:
      • Updated UG to be more user-friendly by adding sections on how to use the guide and the basics of JARVIS
    • Developer Guide:
      • Added implementation details for the expanded lists feature
      • Update UML diagram for Ui component