Skip to content

Latest commit

 

History

History
93 lines (76 loc) · 4.27 KB

marcusteh1238.adoc

File metadata and controls

93 lines (76 loc) · 4.27 KB

Teh Hao Rui Marcus - Project Portfolio

Project Horo - Overview

Our group of 5 software engineering students were tasked to enhance or morph a basic command line interface Address Book application for our Software Engineering project. We chose to morph it into a personal time management helper app called Horo.

Horo enables users to keep tracks of their upcoming tasks and events, reminding users when a deadline or event draws near, and users can also share their data through iCalendar (ICS) files.

This is how the main page of our app looks like:

HoroMainViewDescription
Figure 1. Horo’s Graphical User Interface (GUI)

In this project, my role was to design and implement the code for the export and import commands. The following sections illustrate these enhancements in more detail, including some of the relevant documentation I have added to the User Guide and Developer Guide in relation to these enhancements.

Note the following symbols and formatting used in this document:

export

A grey highlight (called a mark-up) indicates that this is a command that can be inputted into the command line and executed by the application.

IcsExporter

A text with a grey highlight as well as a bold font indicates a component, class or object in Horo.

Summary of Contributions

This section summarizes my contributions to the team project, including coding and documentation.


Enhancement added: The ability to import and export Horo’s Event and Task data through ICS files.

  • How to use it:

    • The command export allows users to export Horo’s data into an ICS file. This file will be in the same directory as the Horo app.

    • The user may use the command import <filepath>, where <filepath> is the path to the ICS file, or any other Horo save file, in order to import its data to the current app.

  • Justification:

    • If users want to share their event details with their friends, they can easily do so by exporting Horo’s save data, sharing the ICS file, and having their friends import the save data from the file.

  • Highlights:

    • As ICS is a widely used format for exporting and importing calendars into various calendar apps, our app can also import and export data to and from other calendar apps.

    • Although there are existing libraries for ICS files, my code is not dependant on any of them, as I did not want to introduce bugs into our app, thus I wrote a custom parser that better suited our needs.

Code Contributed: I mainly contributed code to the ics package of our repository. To view a breakdown of my contributions to the repository, click here!

Other contributions:

  • Project Management

    • Managed the release of v1.1.

    • Came up with the code integration workflow.

  • Documentation:

    • Added information about the ICS package to the User Guide and Developer Guide. (Pull Requests #11, #98)

  • Team:

    • Reviewed Pull Requests with non-trivial review comments: #51, #55

    • Reported bugs found on Horo in the Discord server.

  • Tools:

    • Integrated Travis Continuous Integration to the team repository.

    • Integrated a Github webhook to the team’s Discord server.

Contributions to the User Guide

As part of the requirements, we had to update the original User Guide with instructions regarding how to use our new features. This section contains an excerpt from the User Guide showing how to use the export command. This shows how I am able to give an understandable guide to new users of Horo.


Contributions to the Developer Guide

The following section shows my additions to the Horo Developer Guide for the import and export features, showing how I can write documentation that can be useful to other developers.