Overview
Deliveria is a desktop application that allows a delivery manager to manage and assign delivery tasks efficiently. While it consists of a Graphical User Interface (GUI) that is user-friendly, Deliveria is optimized for those who prefer to work with a Command Line Interface (CLI) which allows fast management of the delivery tasks in an organisation.
About the project
My team of 5 software engineering students including myself were tasked to improve the existing command line interface software, Addressbook application, as our Software Engineering team project. We were tasked to either optimize the address book for a more specific target user group or morph it into a different product. Our team chose to morph the product into a delivery task management system called Deliveria. The software allows inventory manager of a delivery company to track the delivery tasks; manage the driver delivery work schedule; and able to generate a report summary of the day without any access of internet.
This is what our project looks like:
My role specifically was to make all user interfaces of the program such as the layout, displaying list view, resizing features, adding and navigating between tabs. Furthermore, I was in charge of the history and statistic component of the software. The following sections illustrates the enhancement in a more detail manner, as well as the relevant documentation I have added into the user and developer guide.
Summary of contributions
Enhancement added:
Statistic component:
-
What it does: Displays to main bar charts of the customer and driver trends. The bar chart also automatically updates depending on what the user inputted.
-
Justification: This feature improves the product significantly because it is solely a display that is not in a list view type. The user can easily visualised the trend of the sales and comparing the orders between customers. Furthermore, the graph for drivers allow the user to learn about the driver which may contribute to the driver rating system feature.
-
Highlights: This part is rather challenging as I have never come across processing real-time data before. The feature requires individual research upon bar charts and how to automatically update the bar charts in a real-time manner.
Completed Delivery List component:
-
What it does: The
viewC
command allows the user to view completed tasks delivered to the specified customer ID. TheviewD
command allows the user to view the completed tasks delivered by the specified driver ID. When typinglist
it will refresh the completed list back to normal. -
Justification: The feature is significant to the product. The feature allows the user to keep track of the details of what is delivered to the customer. From here, the user can learn about the customer loyalty and the customer taste or simply how frequent he/she asked for deliveries.
History Command component:
-
What it does: Automatically displays a list of all commands the user successfully entered.
-
Justification: The feature offers the user to trace back what they have successfully inputted. For instance, he made a variety of changes regarding the program today, he can trace back what he has done for the day and look into if he had made any mistakes with the input.
UI component:
The UI component is basically the whole visualization of the program we had at the end. The layout, the window size,
the lists, the colour, the tabs, the send command box, was what I contributed and enhanced. The UI component also come
with the ability to drag between panes to allow greater display for a larger text. As well as shrinking the list to provide
space for a more important component. Furthermore, the component also has a go
command feature allowing the fast typing
users to navigate between tabs without having to use their mouse to click.
-
Code contributed: [Functional code]
-
Other contributions:
-
Project management:
-
Managed releases
v1.2
-v1.4
releases on GitHub
-
-
Enhancements to existing features:
-
Coded Goods and description component (Pull requests #78)
-
-
Documentation:
-
Did cosmetic tweaks to existing contents of the User Guide: #246
-
-
Testing:
-
Added tests cases inside the add command tests.
-
-
Community:
-
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Navigate between tabs : go
Navigates to the specified tab Tl state.
Format: go [TAB_NAME]
Examples:
-
go statistic
-
go home
Views completed delivery tasks delivered to Customer
Displays a list of completed tasks delivered to the customer, located in the completed delivery list under History tab.
Examples:
-
viewC 1
View the tasks delivered to the customer (Customer ID: 1).
Views completed delivery tasks delivered by Driver
Displays a list of completed tasks delivered by the driver, located in the completed delivery list under History tab.
Examples:
-
viewD 1
View the tasks delivered by the driver (Driver ID: 1).
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
UI component
API : Ui.java
The UI consists of a MainWindow
that is made up of parts e.g.CommandBox
, ResultDisplay
, DriverListPanel
, StatusBarFooter
etc. All these, including the MainWindow
, inherit from the abstract UiPart
class.
The UI
component uses JavaFx UI framework.
The layout of these UI parts are defined in matching .fxml
files that are in the src/main/resources/view
folder.
For example, the layout of the MainWindow
is specified in MainWindow.fxml
The UI
component,
-
Executes user commands using the
Logic
component. -
Listens for changes to
Model
data so that the UI can be updated with the modified data.
[Proposed] View completed Task delivered for customer or driver
The section allows the user to view the completed tasks by driver or customer The following activity diagram summarizes what happens when a user executes a new command:
viewC 10
The following is the sequence diagram summarizes what happens when a user executes a new command:
viewC 1
viewC 2
PROJECT: PowerPointLabs
{Optionally, you may include other projects in your portfolio.}