Justin's Project Portfolio Page
Project: PartyPlanet
PartyPlanet is a cross-platform desktop application that helps users plan birthday celebrations. The user primarily interacts with it using a command-line interface, inside a GUI created with JavaFX. It is written in Java with around 10k LOC.
A full list of code contribution can be found here:
RepoSense
Given below are my contributions to the project.
New features
- Add options to search by partial / exact / all / any matches in
list
: #116- What it does: Allows the user to expand or limit the search criteria when filtering contacts, by specifying whether a partial match is desired, and whether all or only one specified criteria should be fulfilled by each filtered contact.
- Justification: The granularity with which users filter contacts can vary greatly depending on their search preferences and use case.
- Highlights: Required defining of individual predicates used for filtering, as well as combining these predicates.
- Search for contacts by birthday month:
#183
- What it does: Allows the user to find groups of contacts matching a birthday month (or with no birthday specified).
- Justification: A major use case involves users planning birthday celebrations on a monthly-basis.
- Highlights: Implemented code to accept months as case-insensitive short / long forms, or as integers.
Feature enhancements
- Refactor Date class + Add sort by upcoming birthdays (dates) in
list
(elist
): #180- A noticeably big PR, to minimize duplicate functionality using inheritance, and change internal date types to better fit subclassing requirements.
- Add option to sort by birthday month in chronological order, and decoupled ordering option from sorting option: #126
- Add alternative date formats (ISO, DMY, YMD) with and without years:
#119
- Justification for chosen formats is partially detailed here
- Update email regex to be more permissive: #286, issue #247
- Change prefix syntax to dash form, and add long form alternatives: #73, #111
- Improve GUI visuals to accommodate prior font change:
#198
- This is particularly noteworthy since it emphasizes UX design.
- Refactor
theme
command to rely on enumeration, and add theme switching alternative using GUI menu bar: #184- Builds upon initial
theme
implementation bygaryljj
in #176
- Builds upon initial
- Add initial GUI skeleton to display event list:
commit
02452dd
- Implemented in favor of tag list proposed in #99 due to limited horizontal space.
- Add unit tests for:
Date
,Birthday
,ListCommand
,ListCommandUtil
,ParserUtil
,Prefix
Documentation
- UserGuide:
- DeveloperGuide:
Team workflow
- Add workflow to send pull request notifications (open, close, sync) to Telegram
#52,
#64
- Improves team workflow since our developer channel on Telegram is more frequently monitored compared to email
- Add issue tracker templates: #75
- Organize repo labels
- Manage opening and closing of GitHub milestones