Skip to content

[Xirnic] iP#817

Open
Xirnic wants to merge 56 commits into
nus-cs2103-AY2526S1:masterfrom
Xirnic:master
Open

[Xirnic] iP#817
Xirnic wants to merge 56 commits into
nus-cs2103-AY2526S1:masterfrom
Xirnic:master

Conversation

@Xirnic

@Xirnic Xirnic commented Sep 12, 2025

Copy link
Copy Markdown

Kjaro

“Your mind is for having ideas, not holding them.” – David Allen (source)

Kjaro frees your mind of having to remember things you need to do. It's,

text-based
easy to learn
FAST SUPER FAST to use
All you need to do is,

download it from here.
double-click it.
add your tasks.
let it manage your tasks for you 😃✨
And it is FREE!

Features:

  • Managing Tasks

  • Managing deadlines (coming soon!)

  • Savefile corruption failsafe (coming soon!)

If you are a Java programmer, you can use it to practice Java too. Here's the main method:

public static void main(String[] args) {
        Kjaro kjaro = new Kjaro();
        kjaro.run();
}

damithc and others added 25 commits July 11, 2024 16:52
In build.gradle, the dependencies on distZip and/or distTar causes
the shadowJar task to generate a second JAR file for which the
mainClass.set("seedu.duke.Duke") does not take effect.
Hence, this additional JAR file cannot be run.
For this product, there is no need to generate a second JAR file
to begin with.

Let's remove this dependency from the build.gradle to prevent the
shadowJar task from generating the extra JAR file.
@Xirnic Xirnic changed the title Xirnic iP [Xirnic] iP Sep 12, 2025
ReadSaveData is a very long method, with arrowheading.

The code is prone to errors, and is bad code quality.

Extracting each task type's process allows for better
readability and future-proofing.

Although the original code works, it will be troublesome if
more task types were added in the future.
The code does not have any assertions

Extra arguments may be checked for in the code, but lack of arguments is
not checked as thoroughly

Adding assertions can help verify if the checks in the code are
sufficient

Assertions are such that any future changes to the code will flag an
error instead of simply creating a nameless task
Add assertions for task instantiation
Merging to update branches
There is no way to change a task's due date after adding it

It is troublesome to delete a task and add a new one every time its
deadline changes

Adding this new snooze feature will allow for editing of the tasks'
deadlines

Snoozing is one of the most common changes to a task's deadline.
The GUI is the classic white background with black words

The light background makes Kjaro's icon less visible

Changing the theme to a dark theme for better clarity and aesthetics

A dark colour fits both kjaro's and the user's current icon, with what
the focus should be on for both.
Snooze currently only supports specified days

Adding a default value for the snoozing allows the code to manage for
what was once non-optional arguments

Making the snooze function have a basic value of 1 day makes one of the
more common uses of snooze to be simpler and faster
Merge pull request #3 from Xirnic/master
Task classes have reused datetimeformatters, as well as bulky if-else
statements for toString methods

Extracting reusuable datetimeformatters, using ternary operators

Makes code more readable
Ui image not recognised due to incorrect naming style

Changing the name to Ui.png to fix detection issues

To better follow naming conventions
The javadoc in the task class do not follow a consistent style

Rewriting the javadoc for more consistency and standardization across
the package.

This will achieve better readability, and to make the code easier to
understand.
Javadoc style for the class in the Storage package doesn't match with the rest, along
with containing extraneous information.

Rewriting and trimming the javadoc in the storage class.

Improves consistency, and readability.
Some methods are missing documentation.

Adding documentation for all private methods as well as rewriting the
javadoc for the main parseInput function for consistency.

The private methods are abstracted from the parseInput method, adding
documentation will allow for better readability of the entire class.
Current javadoc does not match other classes, as well as a lack of
documentation for the UI class.

Writing javadoc for the UI class, and rewriting for Kjaro.

Helps with readability, and will make code more future-proof.
Ui image not recognised due to incorrect naming.

Changing the name to Ui to fix detection issues.

To follow naming convention for proper file detection.
The same pattern is used for multiple methods, and is defined at the
start of each.

Declaring a constant field with the pattern in the class.

Reduces code repetition.
Snoozeable was left out mistakenly during the rewriting of Javadoc

Writing the javadoc for the interface itself better explains its use.

For better code readability
The method names refer to printing messages as per the old ui.

Adjusting the method names will allow it to line up with its updated
functionality.

Enhancing code readability, and making methods clearer.
There is no javadoc for the methods, as they were previously
straightforward.

Adding the javadoc, detailing how the methods convert 1-indexing to
0-indexing better details the intended use of these methods.

Reduces confusion in the future if 0-indexing is expected, instead of
the 1-indexing that Kjaro uses.
Code contains random black lines, and a few files don't end in a newline.

Making blank lines consistent, and adding missing newlines for better
consistency.

To better align with coding standards.
Save only executes when the user types the save function.

Adding the save functionality to every data-modifying action will result
in more frequent saves.

To prevent the loss of data if the app were accidentally closed without
saving.
The toString methods of Event and Deadline do not have line breaks.

Placing appropriate line breaks makes the expressions readable.

To make each component of the final string be apparent, and identifiable
at a glance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants