Lin Zhiwei's Project Portfolio Page
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
andaddtoclass
- 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
andfindclassname
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
- Community