Muhammad Khair's Project Portfolio Page
Project: TuitiONE
TuitiONE is a desktop address book application used for teaching Software Engineering principles. 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: Added a new entity Lessonand established bi-directional linkages withStudent(previouslyPerson) entities.- What it does: Allows users to establish better relationship and collection of data such as lessons enrolled and subscription prices. Overall, a key element for the application to serve its purpose.
- Justification: A driving factor in the application to serve its purpose. Establishing the new entity allows the user to fulfill their needs to link Studententities withLessonones.
- Highlights:
        - Establishing weaker equality checks using a dependent entity LessonCode, numerous constraints and abstracting the initialLessonclass to dependent field classes such asSubjectandPricein iterationsv1.2andv1.3.
- Ensuring defensive programming is embedded in the bidirectional relationship with multiple constraints so that it can be tapped on by other packages such as model,storageas well aslogic.
- Abstracting logic for ease of usage within other packages (similar to previous pointer).
- Ensuring and maintaining the new entity into storageintegration with Jackson JSON processing library.
 
- Establishing weaker equality checks using a dependent entity 
 
- Enhancements to existing features:
    - Ensuring and maintaining the new and existing (modified) entities into storageintegration with Jackson JSON processing library (Pull requests #76, #86)
- Wrote additional tests for existing features to increase coverage for new entities and constraints (Pull requests #104, #114, #178, #195)
- Evolve Lessonentity from a single container of primitive data to a class that depends on field entities using abstraction (Pull requests #167, #86)
- Refactoring message and command logic to ensure easier readability (Pull requests #287)
 
- Ensuring and maintaining the new and existing (modified) entities into 
- 
    Code contributed: RepoSense link 
- Project management:
    - Managed release v1.3
 
- Managed release 
- Documentation:
- Community: