Skip to content

Latest commit

 

History

History
175 lines (112 loc) · 6.93 KB

wongchuankai.adoc

File metadata and controls

175 lines (112 loc) · 6.93 KB

Wong Chuan Kai - Project Portfolio for EzWatchList

PROJECT: Ezwatchlist


1. Introduction

The purpose of the Project Portfolio is to document and showcase my contributions to the software project, EzWatchList.

Our team was initially tasked with enhancing a basic command line interface(CLI) desktop application for our Software Engineering project. We are also allowed to morph it to other application that uses command line interface. Thus, we chose to morph it into a movie records management system called EzWatchList. This enhanced version provides a unique, clean and simple way of organizing and keeping track of movie or TV show watch list.

1.1 Overview

Ui

Figure 1. The graphical interface for Ezwatchlist.

EzWatchList helps users to keep track and organise movie or TV show in a watch list. User can simply interact with the application by inputting commands into the interface.

Main features of EzWatchList:

  • Keep track of shows that users plan to watch

  • Allows users to edit and mark down shows that they have watched

  • Allows users to search for show online using search online function or search within user’s watch list.

  • Gives users statistics about their watching habits and recommend shows to them.

Note the following symbols and formatting used in this document: This symbol indicates important information. API - Application programming interface. A sort of interaction with applications through software intermediaries. undo 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. VersionedAddressBook Blue text with grey highlight indicates a component, class or object in the architecture

The following sections illustrate these enhancements in more detail, as well as the relevant documentation I have added to the user and developer guides in relation to these enhancements.

2. Summary of contributions

This section shows a summary of my coding, documentation, and other helpful contributions to the team project.

My role was to design and implement the Add and Sync features. These commands are essential to the application as they are the building block of the application. Before I can design these features, I have to understand the application requirement first such as functional and non-function requirements. I also have to know who my target audience is and study the use-cases properly to plan out and design these features.

Major enhancement:

Added ‘add’ and ‘sync’ commands.

Add command

What it does:

There are two functions for Add command. Firstly, it allows the user to add movies or TV shows into the watch list. User has to input several information of the show such as name, description, and name of actors. Beside this core function, the add command also allows user to add a movie found in search result page after user has used the search online feature. Search page displays the search result of the movies the user is interested to watch. The search feature is implemented by my team mate, Michelle.

Justification:

The purpose of this application is to allow user to track movie list. Thus, adding shows into watch list is a fundamental and core function that runs the application. If the user wants to know more about a certain movie, he can simply use the search function to search for it. The search function is able to gather information about movies online and user can choose to ‘add’ a certain movie from the search list into his own watch list.

Highlights:

Credits:

Since we are retrieving information on shows online, we decided to use The Movie Database (TMDB) api.

Sync command

What it does:

There are two functions for Add command. Firstly, it allows the user to add movies or TV shows into the watch list. User has to input several information of the show such as name, description, and name of actors. Beside this core function, the add command also allows user to add a movie found in search result page after user has used the search online feature. Search page displays the search result of the movies the user is interested to watch. The search feature is implemented by my team mate.

Justification:

The purpose of this application is to allow user to track movie list. Thus, adding shows into watch list is a fundamental and core function that runs the application. If the user wants to know more about a certain movie, he can simply use the search function to search for it. The search function is able to gather information about movies online and user can choose to ‘add’ a certain movie from the search list into his own watch list.

Highlights:

Credits:

Since we are retrieving information on shows online, we decided to use The Movie Database (TMDB) api.

Minor enhancement:

Added shortcut keys to move about pages easily.

What it does:

Users are able to press a single shortcut key button to move about the panels such as ‘Watchlist’, ‘Watched’, ‘Search’ and ‘Statistics’ without moving and clicking mouse.

Justification:

Our target user is one who prefers to type fast and complete tasks quickly. One of the non-functional requirement is to reduce the usage of the mouse as this is mainly a command line application. Adding shortcut keys will reduce the usage of the mouse.

Highlights:

Code contributed:

My contributions to EzWatchList can be found in the following link: [My Code Contribution]

Other contributions:

Project management:

Enhancements to existing features :

Documentation:

Community:

Tools:

  • Integrated a third party library (TMDB) to the project (TMDB Api)

  • Integrated a new Github plugin (Java wrapper) to the team repo.

  • Added a successfully merged pull request to the Java Wrapper we are using in our application to fix their issue of not supporting recommendations. (Pull request merged)

3. Contributions to the User Guide

This section is an excerpt from our EzWatchList User Guide, showing additions that I have made for the add and sync features. They showcase my ability to write documentation targeting end-users.

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 software engineering skills to the project.