Shafik's Project Portfolio Page
Project: HustleBook
HustleBook is a desktop app specially catered towards financial advisors for managing client details and scheduling meetings efficiently without the need to lift their hands off the keyboard. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 12 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to schedule and cancel meetings with clients through
meetcommand.- What it does: Allows the user to schedule a meeting date and time with a client. Users can also cancel meetings with the client.
- Justification: This feature improves the product significantly because the user has to schedule meetings with clients and more often than not, clients cancel meetings on them.
- Highlights: This enhancement is useful as other meeting details can be added through the
meetcommand. As of now, it supports scheduling and cancelling meetings. Furthermore, there is also a prevention measure to ensure that no two meetings clash.
- New Feature: Added
previous date metfield for clients.- What it does: Allows the user to track the previous date they met up with their clients.
- Justification: This feature improves the product significantly because the user would benefit by keeping a close bond with their clients. This ensures that they do not neglect any of their clients.
- Highlights: This enhancement affects existing commands and commands to be added in the future as the
addandeditcommand now has to support this new field. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands and considerations of default values.
- New Feature: Added
infofield for clients.- What it does: Allows the user to track clients’ information.
- Justification: This feature improves the product significantly because the user would need to keep track of their client’s info such as their financial goals and interest. Since different client might have different types of information to track, all these can be tracked in
Infofield. - Highlights: This enhancement affects existing commands and commands to be added in the future as the
addandeditcommand now has to support this new field. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands and considerations of default values.
- New Feature: Added
scheduled meetingfield for clients.- What it does: Allows the user to keep track of meetings that they scheduled with their clients.
- Justification: This feature improves the product significantly because the user can now keep track of their meetings with each client.
- Highlights: This enhancement goes together with the
meetcommand to ensure that each client’s meetings are tracked.
-
Code contributed: RepoSense link
- Project management:
- Manage project milestones (v1.1 to v1.4, 5 milestones) in GitHub.
- Maintain consistency of HustleBook references in Developer Guide and User Guide.
- Maintained the issue tracker and adhere to it.
- Managed project meetings and meeting documents.
- Enhancements to existing features:
- Modified
addandeditcommand to handle the new fields to allow users to add the relevant fields to track their clients better. - Handled
previous date metandinfofields to have default values when not specified when adding clients into HustleBook. - Changed the case-sensitivity of
Nameto case-insensitive for a more practical determination of duplicate clients in HustleBook. - Prevent the ability to schedule meetings if that meeting date and time clashes with current meetings.
- Wrote additional test cases to increase coverage.(#272, #233, #68)
- Modified
- Documentation:
- User Guide:
- Developer Guide:
- Community: