Overview

NotUS is a quick and simple, Command Line Interface (CLI) based, note-taking application for keyboard-inclined users. NotUS allows for users to categorize notes by tagging as well as pinning the more important notes. NotUS is also designed to assist in planning timetables to highlight possible clashes.

  • Co-team lead: Responsible for overall project coordination alongside Ramana.
  • Software Architect: Designed the software architecture of the programme with Nazryl. Ensures the logic of the code structure.
  • Integration: Worked with Ramana for the versioning of the code, maintaining the code repository, integrating various parts of the software to create a whole.

Summary of Contributions

Features implemented

1. Implemented TaggableObject class which is inherited by Note and Event, which can have multiple tags and different Taggable objects can share same tag(s).

2. Implemented Tag class which contains the tag name and its color to differentiate tags.

3. Implemented TagManager class which manages all the tags in application. A hashmap is used where each unique tag is mapped to a Taggable object.

4. Implemented create tag, delete tag, as well as tag or untag taggable objects.

5. Implemented ParserManager class which manages the creation of different parser objects to parse the user input to the required parameters.

6. Implemented SystemException class which extends from Exception class. Enumeration for all possible types of exception that may occur with a unique string as its message.

7. Implemented Formatter class which formats Note, Event and String before printing.

Code contributed: RepoSense link

Project management: Set up the framework of the programme for team members to work on, managed code cleanup before every release, managed releases v1.0, v2.0 and v2.1 on GitHub.

Contributions to User Guide

Section 3.11 Create Tags
Section 3.12 List Tags
Section 3.13 Tag/Untag Notes
Section 3.14 Tag/Untag Events
Section 3.15 Delete Tags

Contributions to Developer Guide

Section 2.1 Architecture Overview
Section 2.3 Parser & ParserManager
Section 2.4 Commands (Class diagram of Command Class, Figure 6)
Section 2.7 Tags
Section 2.9 User Interface
Section 2.10 SystemException
Section 2.11 Usage of External Libraries
Section 8.1 List of ParseCommand Classes
Section 8.2 List of Command Classes

Community

1. Reviewed most of the PRs to ensure the Classes and functions follow the project architecture as well code logic of the programme. Reviewed a total of 66 PRs out of 114 PRs, with 167 comments.

2. Reported bugs and suggested fixes for team members. (#115, #135, #148, #159, #168, #175 and #199)

3. Contributed to forum discussions on usage of Jcolor and jansi libraries. (#86 and #93)

Tools: Integrated a third party libraries - (JColor) (#37) and (jansi) to the project (#87).