PROJECT: Deliveria


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:

Ui

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. The viewD command allows the user to view the completed tasks delivered by the specified driver ID. When typing list 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:

      • PRs reviewed (with non-trivial review comments): 86, #234, #84

      • Fix the reported bugs from team mates (Examples: issues #240, #238)

      • Reported bugs and suggestions for other teams in the class

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.

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

UiClassDiagram
Figure 1. Structure of the 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

viewCustomerTaskActivityDiagram

The following is the sequence diagram summarizes what happens when a user executes a new command:

viewC 1

viewCustomerTaskCommand

viewC 2

viewDriverTaskCommand

PROJECT: PowerPointLabs


{Optionally, you may include other projects in your portfolio.}