Alzahrani Riyadh Hamdan S's Project Portfolio Page
Project: Dictionote
Dictionote is a desktop application that helps CS2103T students in finding information about the module’s materials and writing notes about them. It is optimised for Command Line Interface (CLI) users so that searching and writing operations can be done quickly by typing in commands.
Given below are my contributions to the project.
- New Feature: Added the ability to send emails to contacts.
- What it does: allows the user to send an email to any of their contacts stored in the contacts list. The body of the email can contain the contents of any note present in the notes list.
- Justification: This feature provides a method to communicate with the stored contacts by utilizing the existing AddressBook feature of storing email addresses. Not only so, but the ability to include stored notes in emails simplifies the process of sharing them with others.
- Highlights: Due to the use of
mailto
links in the implemtnation of this feature, it would rely on the user’s operating system (OS) default mail client to handle the email composition and sending requests, which might need to be installed if not present. - Credits: TorstenH. and alexey_s from CodeProject for the Java URL invocation code. Note that the Java method used in Dictionote’s source code was not the one specified in the aforementioned posts, but a similar one from the same Java API.
- New Feature: Added the ability to sort the contacts list by most frequently-contacted.
- What it does: sorts the contacts list, in descending order, based on the number of times the user had attempted to send an email to each contact.
- Justification: This feature provides the user with an easy way to identify their most-contacted contacts, as well as positioning them on top of the contacts list for quicker access.
- Highlights: In order to implement this feature, a custom helper attribute called
FrequencyCounter
was added for each contact, which starts from 0 and increments by 1 every time anemailcontact
command targeting them executes. This allows for contacts found in previous versions of Dictionote to be easily imported to the new version, since this feature does not modify their exisiting attributes.
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.3b
(1 release) on GitHub - Managed weekly Zoom meetings during Weeks 4 to 13.
- Managed releases
- Enhancements to existing features:
- Updated the
find
(now known asfindcontact
) command to allow for users to search their contacts lists by tags or email. (Pull requests #65, #137) - Fixed a bug in the original implementation of the contacts list (i.e., AB3) where two contacts could share the same phone number or email, but not the name. (Pull request #250)
- Updated the
- Documentation:
- User Guide:
- Developer Guide:
- Updated the description and class diagram of
Storage
: #265, #282. - Added implementation details of the
emailcontact
andmostfreqcontact
features: #133, #277. - Added use cases for the
deletecontact
,clearcontact
, andemailcontact
features: #277 - Added a manual testing guide for the
addcontact
andeditcontact
features: #282.
- Updated the description and class diagram of
- Community: