Project: TutAssistor

TutAssistor is a desktop application for private tutors to manage tuition class timeslots. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). The user interacts with it using a CLI, and it has a GUI created with JavaFX. It has about 20 kLoC.

Given below are my contributions to the project.

Code contributed

Enhancements implemented

  • New feature: Dedicated multi-use information display panel (Pull request #42)
    • What it does: Adds a dedicated panel in GUI to display information.
    • Justification:
    • Highlights: The implementation of this GUI element allowed for future expansions of features that involve users pulling up detailed information on command.

      Features added later in the project that utilized the display panel include the View Student/Class Commands, View Timetable Command and View Today’s Classes Command.

  • New Feature: View student/class command (#42)
    • What it does: Allows users to view detailed information on students and tuition classes in info panel via the student and class commands.
    • Justification: Full information about a student or class can be long, especially if a user has added remarks to them. By enabling users to view detailed information about students and tuition classes on command, this feature allows less information about students and tuition to be displayed on the student and tuition class lists displayed by default on the GUI. Hence, users to have a less cluttered overview of their student and class lists, only accessing more detailed information when desired. Furthermore, this allows more students and classes to be displayed in their respective lists at a time.
  • New Feature: Command input history navigation (#111)
    • What it does: Allows users to access and navigate through previously entered inputs using the arrow keys.
    • Justification: TutAssistor uses CLI, in which users may want to access previously entered inputs to redo commands with some modifications, without having to retype an entire long command.
    • Acknowledgement: This feature was inspired by a similar feature in YaleChen299’s ip for CS2103T, though its implementation in this project is new.
  • Enhancement: Command shortcuts (#111)
    • What it does: Adds shorter alternatives to command keywords.
    • Justification: While the full command keywords such as addtoclass or timetable may be more intuitive to understand, shortcuts such as atc and tt can greatly speed up the workflow of users more familiar with the software and CLI.

Contributions to team-based tasks

  • Managed scheduling and agendas for weekly team meetings.
  • Refactored Person related classes in codebase to Student classes for clarity. (#123)
  • Managed all software releases.

Documentation

  • User Guide:
    • Added guide for find and list commands. (#87)
    • Added information on command shortcuts. (#111)
    • Added command format information guide. (#117)
    • Adjusted overall grammar, formatting and clarity. (#117)
  • Developer Guide:
    • Added user stories and product uses cases. (commit 341b3ef)
    • Added implementation details for CLI History Navigation. (#224)

Contributions beyond project team