Skip to content

Latest commit

 

History

History
128 lines (82 loc) · 6.68 KB

kxyoke.adoc

File metadata and controls

128 lines (82 loc) · 6.68 KB

Yoke Kai Xin - Project Portfolio

PROJECT: Mark

1. Overview

This project portfolio showcases my contributions to my team’s group Software Engineering project, Mark. My team consisting 5 NUS Year 2 Computer Science students were tasked with enhancing a basic desktop application, AB-3, to solve a problem for a specific target group.

Given 8 weeks to conceptualise and implement the project in Java, we chose to morph AB-3 into a bookmark manager application we call Mark. Mark aims to improve computing students' productivity by helping them organise their web browsing and note-taking activities.

Mark has a visually appealing graphical user interface (GUI) to visually guide the users around the application. This is what Mark looks like when you open the application:

450
Figure 1. Dashboard tab view of Mark.

My role was to design and implement the annotation feature so users can conveniently make notes on important web pages instantly while reading them. This feature uses commands that begin with annotate and works on the offline version of the web pages converted by Mark.

The following sections illustrate my contributions in more detail.

2. Summary of contributions

This section gives a summary of the features I implemented, documentation I did and other parts I contributed to my team project.

2.1. Major enhancement: Added the annotation feature

I added the ability to annotate the offline copy of the web page referred to by a bookmark. Users can not only read their web pages offline, but they can also make notes on them directly.

  • What it does: Adds, deletes and edits annotations.

  • Justification: Users can take notes directly on the web page. This makes it convenient for users to review their notes.

  • Highlights: This enhancement works with undo and redo` commands to provide a sense of security when annotating. The implementation was rather challenging because to support annotations, the offline document has to take into account different kinds of paragraphs, each having a unique set of restrictions. Nevertheless, the completed annotation feature works well and is aesthetically pleasing on the application.

  • Credits: I used the JSoup library to extract the paragraph contents of the web pages. Colours of the highlight are provided by the javafx css extension.

2.2. Major enhancement: Added the web browsing feature

I added the ability to browse web pages on the application.

  • What it does: Allows users to search the web and browse web pages.

  • Justification: Users no longer need to open a separate web browser window to view their bookmarks, which improves navigability within the application.

  • Highlights: This enhancement allows users to browse directly on the application and more conveniently bookmark the tab they are viewing on Mark.

  • Credits: I referred to the web view embedded in AB-4, which was lacking a navigation bar.

2.3. Minor enhancement: Added tab view

I created tabs and added the ability to switch views from tab to tab.

  • What it does: Organises the GUI and allow users to switch between tabs to view the various components with ease.

  • Justification: An organised interface will help users get familiarised fast and improve their quality of use of the application. Hence, tabs are necessary to declutter the GUI so each component has sufficient space for users to view them in comfort.

  • Highlights: This enhancement leaves much room for customization and personalization for future work.

2.4. Code contributed

To view the code I wrote, please click on the following links: Functional code Test code Reposense overview

2.5. Other contributions

  • Project management: managed release v1.2 on GitHub

  • Enhancements to existing features: created layout of the GUI (Pull requests #63, #74) and designed the GUI color scheme to make it more attractive (Pull request #246)

  • Community: reviewed Pull Requests (with non-trivial review comments): #64, #96, #128, #129 and provided suggestions for another team.

3. Contributions to the User Guide

Given below is one of the sections that I contributed to our User Guide for Mark. It showcases my ability to write documentation targeting end-users.

Start of extract from Mark User Guide

End of extract from Mark User Guide

4. Contributions to the Developer Guide

This section will refer to this class diagram drawn by Dorcas:

Given below are sections I contributed to our Developer Guide for Mark. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.

Start of extract from Mark Developer Guide

End of extract from Mark Developer Guide