Haikal Yusuf's Project Portfolio Page
Project: RealEstatePro
RealEstatePro 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 the ability to mark a client as a buyer or seller.
- What it does: allows the user to indicate a client as a buyer or seller. The user does not have to explicitly input “buyer” or “seller” when creating a new client, RealEstatePro will be able to infer based on the client’s details.
- Justification: This feature improves the product significantly because a user will need to input lesser details.
- Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands & had a lot of regressions in the main and test code, as this feature was initially refactored from the Tag feature.
- Credits: this feature is completely original, with no reference materials.
- New Feature: Added a remind command that allows the user to indicate clients they wish to be reminded of.
- What it does: Allows the user to set reminders for themselves to contact a client/clients, frequently reminds the user by launching the Reminder window if it’s not active, or focusing on the Reminder window if it’s already active.
- Justification: This feature improves the product as the user will take note of which clients to follow up with, and will be constantly reminded when the app is active, or after they just launched the app. A separate Reminder Window containing the clients with Reminders helps the user focus on
- Highlights: This feature involves the usage of Threads and was quite tricky to implement because improper handling or usage of Threads could result in performance issues, and the app not behaving properly (closing the app with the Thread still running did not fully close the app & forcing the app to shutdown via IntelliJ resulted in an exit code error).
- Credits: this feature was implemented with the help of these online resources: Java Timer
- New Feature: Added a reminder window command that allows the user to directly open the Reminder window, without having to interact with the GUI.
- What it does: Allows the user to directly view a compact list of clients which have Reminders set by the user (real estate agent).
- Justification: This feature improves the product as the user will be able to quickly open up the Reminder window from just their keyboard!
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.2
(1 release) on GitHub
- Managed releases
- Enhancements to existing features:
- Documentation:
- User Guide:
- Added documentation for the features
help
,add
,list
andedit
(Howard, Cindy & myself authored the document on Notion, Jiet helped uploade the User Guide on our behalf) #34
- Added documentation for the features
- Developer Guide:
- Added implementation details of the
UserType
feature. - Added implementation details of the
Remind
feature.
- Added implementation details of the
- User Guide:
- Community:
- Tools:
- Integrated a third party library (ControlsFX) to the project (#42)