My team of 5 software engineering students was tasked with morphing an existing Command Line Interface (CLI) desktop application into a useful application for a specific target group. We chose to create a bookmark manager application known as Mark, which is intended to help computing students manage their web browsing activities. Mark was conceptualised and implemented over a period of 8 weeks.
This is what Mark looks like:
My role as a developer was to design and implement a mechanism to allow bookmarks to be categorised automatically. I also improved Mark’s storage functionality and contributed to various team tasks. The following sections describe these contributions in more detail.
This section summarizes my code, documentation, and team-related contributions to Mark.
Major feature: I implemented the autotag mechanism to facilitate the automatic categorisation of bookmarks.
-
What it does: Allows bookmarks to be tagged automatically based on a predefined set of conditions.
-
Justification: Organising bookmarks is time-consuming as bookmarks must be edited individually. This enhancement allows users to categorise their bookmarks without additional effort.
-
Highlights: Designing the autotag mechanism required significant planning to conceptualize how abstract autotag conditions should be stored. In addition, this feature involved development in all major components of Mark.
Minor feature: I enhanced Mark’s existing storage system by adding the capacity to export and import bookmarks. It allows users to save and retrieve bookmarks from different files on the hard disk without exiting Mark, so that they can preserve old bookmarks without cluttering their current dashboard.
Code contributed: Click here to see the code and documentation that I contributed to Mark.
Other contributions
-
Project management: I facilitated weekly team meetings to discuss the team’s progress and managed release
v1.2.1
on GitHub. -
Enhancements to existing features and code-related contributions: I migrated the code from AddressBook Level 3 to Mark (#14, #62), created a custom URL validation to be used when no Internet connection is available (#14, #117), and updated the list of sample data used when Mark is first opened (#227).
-
Documentation: I improved the layout and organisation of the User Guide (#248, #254) as well as documented the design of the Model component in the Developer Guide (#129, #264).
-
Community: I reviewed team members' Pull Requests and offered suggestions to increase the clarity of messages and improve code quality (#74, #119, #122).
Given below is a sample section that I contributed to the User Guide. It showcases my ability to write documentation targeting end-users. |
<Start of excerpt from Mark User Guide>
<End of excerpt from Mark User Guide>
Given below is a sample section that I contributed to the Developer Guide. It showcases my ability to write technical documentation and the technical depth of my contributions to the project. |
<Start of excerpt from Mark Developer Guide>
<End of excerpt from Mark Developer Guide>