Princess Priscilla Paulson's Project Portfolio Page
Project: CakeCollate
CakeCollate is a desktop 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 map order item index in user inputs to order description
- What it does: The add command takes in a new parameter of order item indexes that refer to items in the order item model, which will be then mapped to order descriptions
- Justification: This allows the user to save keystrokes if they’ve already entered a particular order description e.g.
chocolate cake
before. - Highlights: This feature required creating an AddOrderDescriptor, and resulted in lots of refactoring for the AddCommand and AddCommandParser, which affected majority of the tests that use addcommand.
- Credits: The AddOrderDescriptor used was similar to the EditOrderDescriptor, though there are some different methods included.
- New Feature: (Related to previous) Added the ability to store order descriptions inputted using
o/
prefix in the order items table * What it does: order descriptions inputted usingo/
by the user are added in the order items table automatically by the app- Justification: Users can save some time and effort trying to use
addItem
to populate the order item table - Highlights: This led to the realisation that the
OrderDescription
andOrderItem
objects were closely related, as whateverOrderDescription
s were added needed to appear in theOrderItems
model as anOrderItem
. So the validation ofOrderDescription
was changed to refer to the validation constraints of theOrderItem
field (inType.java
). Also this feature broke some existing v1.2/early v1.3 tests that did not preserve this close relationship, e.g. there were someOrderDescriptions
in the model that did not appear in theOrderItem
model, so they required fixing.
- Justification: Users can save some time and effort trying to use
- New Feature: Added the ability to always list orders by a default comparator (that compares orders by status and delivery date)
- What it does: Changes to the model always result in a sorting of the orders by its compareTo method, such that the orders on the GUI is always sorted by status and delivery date
- Justification: This feature improves the usefulness of the GUI to the user immensely as their screen will not be cluttered by
delivered
orcancelled
orders, or orders that are far into their future. They’ll be able to focus on the orders that are more important and urgent to take care of.
-
Code contributed: RepoSense link
- Project management:
- Managed scheduling of meetings and tasks and provided weekly summaries of the tasks due for that week
- Managed project demo (screenshots) in two releases and set up team org repo
- Enhancements to existing features:
- Added order description field to order
- This involved fixing existing tests involving the
Order
object.
- This involved fixing existing tests involving the
- Added order description field to order
- Documentation:
- User Guide:
- Added documentation for the features
add
. Explained some concepts likeindexes
and quantities in more detail for users #226
- Added documentation for the features
- Developer Guide:
- Added implementation details of the
add
feature.
- Added implementation details of the
- User Guide:
- Community: