Project: TimesTable

TimesTable is a desktop address book plus planner application for tuition teachers to keep track of their students and classes. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 25 kLoC.

Given below are my contributions to the project.

  • New Feature: Integrated the TuitionClass into the model
    • What it does: serves as the backbone for our application as our application needs a tuition class entity in its model.
    • Justification: Same as above, it serves as backbone for our project.
    • Highlights: I wrote the initial setup for tuition class and added new classes to model a tuition class’s attributes such as StudentNameList. I made the design decision for how we keep track of students in classes so as to minimize dependency.
    • PRs: #56, #60, #104, #127, #139, #151, #152
  • New Feature: Added numerous basic commands related to tuition class such as addclass, editclass and addtoclass
    • What it does: adds the basic functionality of being able to interact with tuition classes such as adding a class, editing a class and adding students to classes.
    • Justification: The functionalities mentioned above are the basic features that our application should have given our goal and target user.
    • Highlights: Add commands and edit commands are relatively easier than addtoclass command which require designing a new command format. I ended deciding to use indices of currently displayed list as it is the most convenient and intuitive to use.
    • PRs: #70, #104, #127, #160, #237, #253, #263
  • New Feature/Enhancements to existing features: greatly enhanced the search capabiltiy of our application by adding findtag, findclass and findclassname commands
    • What it does: allows user to find students by the tags they have and also find classes by class timing and class name.
    • Justification: Users should be able to have such search functionalities as mentioned above to find quickly students or classes they are interested in.
    • Highlights: Adding find commands for each different attributes have various nuances that one has to look out for and I have learnt to be more careful around these nuances.
    • PRs: #70, #112, #158
  • Code contributed: Reposense

  • Documentation
    • User Guide: Added some documentation for updated features
    • Developer Guide (DG): Added DG for find, addtoclass commands and updated DG for model component
  • Community