Meng Qiaoran's Project Portfolio Page
Project: Duke The Market
Duke The Market is a desktop application used for managing customer contacts and events in department stores. 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.
- Code contributed: RepoSense link
- Enhancements implemented:
- New Feature: Added gender field to a person (Pull requests #50, #52)
- What it does:
- Allows the user to add a person with gender field to person list
- Allows the user to edit the gender of a person after adding the person to person list.
- Justification: Gender is a common field in personal profile, and it can be used in demographic
analysis for marketing event attendees (related command
makeStats
is implemented by another team member).
- What it does:
- New Feature: Added the feature to tag persons to an event (Pull requests #93)
- What it does:
- Allows the user to tag 1 or more persons in the person list to an event in the event list by
tagEvent
command. - Allows the user to untag from an event in the event list 1 or more persons tagged to the event previously by
untagEvent
command.
- Allows the user to tag 1 or more persons in the person list to an event in the event list by
- Justification: Tagging persons to event allows the user to easily keep track of all attendees in the person list for a marketing event in the event list.
- Highlights: This feature requires storing reference of
Person
to anEvent
in storage, to minimize duplications in storage, a new fieldUid
is added toPerson
object to identify unique person. This feature also requires immediate GUI display update of event attendees after tagging and editing related commands.
- What it does:
- New Feature: Added the feature to create mailing list for an event (Pull requests #122)
- What it does: Allows the user to create mailing list containing names and emails of all event attendees for an
event in the event list, the mailing list is in
CSV
format. - Justification: This feature helps the user to collect event attendee emails and send out post-event feedback surveys and notifications easily.
- Highlights: This feature requires writing and storing to
CSV
file, which is an unfamiliar storage file format (data storage usesJSON
file format in this application).
- What it does: Allows the user to create mailing list containing names and emails of all event attendees for an
event in the event list, the mailing list is in
- Testing: Added unit tests for gender field, added gender related unit tests for add and edit person feature.
- Code Quality
- Refactored the original
delete
command todeletePerson
to distinguish it from thedeleteEvent
command. - Did overall code quality check for most java files to modify Javadocs and align code format (Pull request #240).
- Refactored the original
- New Feature: Added gender field to a person (Pull requests #50, #52)
- Documentation:
- Contributions to the User Guide:
- Contributions to the Developer Guide:
- Contributions to team-based tasks:
- Did smoke test for product releases v1.2 and v1.3 (Link)
- Released JAR file of v1.2.1
- Community: