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:
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:
|
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. |
|
A text with a grey highlight as well as a bold font indicates a component, class or object in Horo. |
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:
-
Team:
-
Tools:
-
Integrated Travis Continuous Integration to the team repository.
-
Integrated a Github webhook to the team’s Discord server.
-
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. |
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. |