Skip to content

[Tan Hong Liang] iP - #501

Open
tanhl2000 wants to merge 57 commits into
nus-cs2103-AY2223S1:masterfrom
AHerdOfHLMilk:master
Open

[Tan Hong Liang] iP#501
tanhl2000 wants to merge 57 commits into
nus-cs2103-AY2223S1:masterfrom
AHerdOfHLMilk:master

Conversation

@tanhl2000

@tanhl2000 tanhl2000 commented Aug 29, 2022

Copy link
Copy Markdown

Duke iP

I'm hungry -me

This Duke chatbot is an interactive task scheduler that allows users to:

  • create and add various tasks
  • save and load these tasks to a log file
  • track progress of tasks by marking tasks done and not done
  • and much more!

All you need to do is to:

  1. download it from here
  2. double-click it
  3. add your tasks
  4. let it manage your tasks for you 🤩

and it's FREE!

Features:

  • Managing tasks
  • Managing reminders (coming soon)
  • Managing deadlines (coming soon)

Here's a code snippet to get you excited!

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

@YH-15 YH-15 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, the code was nicely designed, the code style follows coding standards most of the time, other than a few white space and JavaDoc issues. Looks good!

Comment thread src/main/java/Duke.java Outdated
private static final String COMMAND_MARK = "mark";
private static final String COMMAND_UNMARK = "unmark";

public static void main(String[] args) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love the design of code, but it would be great if the main "command execution" part could be extracted out to another class (which is required in Week 3 ip task [A-MoreOOP], so it might be easier if we change the code earlier)

Comment thread src/main/java/Duke.java Outdated

public static String chat(String message) {
return UI_LINE_SPACING + message + UI_LINE_SPACING;
public static void chat(String message) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be great if JavaDoc could be added (but I highly understand that you might want to add comments once for all when the variables/func names are confirmed.

Comment thread src/main/java/Event.java Outdated
@@ -0,0 +1,14 @@
public class Event extends Task{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you might need a white space before the curly brace according to the code standard.

Comment thread src/main/java/Task.java Outdated
@@ -0,0 +1,36 @@
public class Task {
protected String description;
protected boolean isDone;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems that there is an extra white space followed by "protected" according to coding standard.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this violates the coding standard

Comment thread src/main/java/Deadline.java Outdated
@@ -0,0 +1,14 @@
public class Deadline extends Task{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to Event class, I think you might need a white space before the curly brace according to the code standard.

Comment thread src/main/java/Duke.java Outdated
import java.util.ArrayList;

public class Duke {
private static ArrayList<Task> tasks = new ArrayList<Task>();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can consider making this a private static final variable

Comment thread src/main/java/Duke.java Outdated

public static void end() {
System.out.println(UI_LINE_SPACING + "Bye! Hope to see you again!" + UI_LINE_SPACING);
isEnd = true;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall code is clear and the logic flows and should have no problem completing the IP

Comment thread src/main/java/Task.java Outdated
@@ -0,0 +1,36 @@
public class Task {
protected String description;
protected boolean isDone;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this violates the coding standard

Level-7 requirements done, saving and loading finished, merged with master
Level-8 done, date time changed to LocalDate, merged with master
…starting to make the individual classes work
…ing the Command classes which will return tasks, also fixed all errors such that chatbot works now. Package splitting finished as well.
…ursory check for coding standards will continue to check
Level-Javadoc: Added documentation to all classes except tasks classes, documentation is surface level for now will add more
tanhl2000 and others added 25 commits September 19, 2022 23:21
… code quality as I believe it also falls under this category
…s can only do so by exiting the programme, which would save it in the log

This makes it very difficult for them to have multiple save states of their tasks, which may be necessary for users who want to use the scheduler for repetitive tasks, or for trying out different planned schedules and seeing which fit

As such, I have decided to add the archive functionality which lets users save their current configuration within a archive file. The archive is a collection of text files that saves logs of the tasklist and is stored in the Resources/archive directory

I decided to use archiving as it makes it more customisable and flexible for the users

new commands from the archive addition:
- archive [archive name]
- loadA [archive name]
- listA
Currently there is no user guide on the github

New users would not have a user guide to refer to when just starting to use the program

Thus I added a user guide that would be able to tell users about the features and usage of the program

This user guide will be the first thing shown when a user enters the github repo, thus allowing them easy access to it
Added in the clear command which was just updated
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

4 participants