Sun Han's Project Portfolio Page
Project: JARVIS
JARVIS is a desktop application that allows a CS1101S TA to manage their students, tasks and lessons 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: Mark tasks as completed / not completed.
- What it does: Allows the user to mark a task as completed / not completed.
- Justification:
- Allows the user to designate which tasks have already been completed so that they can focus on tasks that have not been completed yet.
- After marking tasks as completed, users may subsequently realise that there is more work to be done for the task. Users need a way to mark tasks as not completed so they know that they have to continue working on the task.
-
Code contributed: RepoSense link
- Project management:
- Set up GitHub team organization + project repo
- Set up CodeCov
- Refactored project from
AddressBook
toJARVIS
- Triaged PE-D bugs
- Closed duplicate bugs and invalid bug reports
- Managed v1.2.1 release on GitHub
- Set up GitHub team organization + project repo
- Enhancements to existing features:
- Added matriculation number to
Student
objects to differentiate between students with the same name. Used matriculation to test for Student equality in classes whereStudent
is used as aHashMap
key. - Added
Lesson
subclasses inModel
component.Lesson
is an abstract class that is implemented by concrete classesStudio
,MasteryCheck
andConsult
, each of which is composed of individual components such asLessonAttendance
andTimePeriod
. These classes are used by various Lesson commands.
- Added matriculation number to
- Documentation:
- User Guide:
- Added annotated image to explain the different components of the GUI
- Developer Guide:
- Updated UML diagrams for
Logic
andModel
components - Added implementation details for
marktask
andunmarktask
feature
- Updated UML diagrams for
- User Guide:
- Community: