Skip to content

[xinyi-lim-19] iP#650

Open
xinyi-lim-19 wants to merge 139 commits into
nus-cs2103-AY2526S1:masterfrom
xinyi-lim-19:master
Open

[xinyi-lim-19] iP#650
xinyi-lim-19 wants to merge 139 commits into
nus-cs2103-AY2526S1:masterfrom
xinyi-lim-19:master

Conversation

@xinyi-lim-19

@xinyi-lim-19 xinyi-lim-19 commented Sep 3, 2025

Copy link
Copy Markdown

Bob

Bob is a friendly chatbot that helps you manage your tasks.
It is text-based, easy to use, and boring actually fun!


✨ Features

  • Manage todos, deadlines, and events
  • Save tasks automatically
  • Edit tasks without deleting
  • Cross-platform (CLI + GUI)

📝 Getting Started

  1. Clone the repo
  2. Run ./gradlew run
  3. Type commands like todo borrow book
  4. Let Bob do the rest 😉

damithc and others added 13 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.

@jarretphon jarretphon 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.

Good work!
Consider fixing some of the coding standard violations to improve readability.

Comment on lines +20 to +24
Task(String description) { this.description = description; this.isDone = false; }
void mark() { this.isDone = true; }
void unmark() { this.isDone = false; }
String statusIcon() { return isDone ? "X" : " "; }
@Override public String toString() { return "[" + statusIcon() + "] " + description; }

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 noticed that the brackets are not in Egyptian Style. This is present in several other places as well.

String input = br.readLine();
if (input == null) { exit(); break; }
String cmd = input.trim();
if (cmd.isEmpty()) { error("Please enter a command (try: todo, deadline, event, list, mark, unmark, delete, bye)."); continue; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Should the multiple statements on this line be separated by newlines? I noticed this issue in several other places as well.

Comment thread src/main/java/duke/Storage.java Outdated
Comment on lines +5 to +6
import java.nio.file.*;
import java.util.*;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps you may only want to import the classes that are utilised in the package.

Comment thread src/main/java/duke/ParserUtil.java Outdated
Comment on lines +17 to +29
switch (type) {
case "T":
return new Todo(desc, done);
case "D": {
LocalDateTime by = LocalDateTime.parse(parts[3]); // ISO
return new Deadline(desc, done, by);
}
case "E": {
String timeslot = parts[3];
return new Event(desc, done, timeslot);
}
default:
return null; // unknown type (treat as corrupted)

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 noticed that the case blocks are indented within the switch block. Perhaps, you might want to un-indent them for consistency with the coding standards?

Comment thread src/main/java/duke/Storage.java Outdated
Comment on lines +12 to +17
public List<String> load() throws IOException {
if (Files.notExists(file)) {
return List.of(); // first run—no data yet
}
return Files.readAllLines(file, StandardCharsets.UTF_8);
}

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 like how clean and readable this bit of code is.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Just a question, why is there both a Duke.java file and Bob.java? which one is the main chatbot?

String cmd = input.trim();
if (cmd.isEmpty()) { error("Please enter a command (try: todo, deadline, event, list, mark, unmark, delete, bye)."); continue; }

try {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps it would be cleaner to abstract out this command input comparison into the Parser class 🤔

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps you should group the different kind of task, todo, deadline,... under the Task package or something like for cleaner directory structure!

@xinyi-lim-19 xinyi-lim-19 changed the title [xinyi-lim-19] iP [xinyi-lim-19] iP Sep 25, 2025
@xinyi-lim-19 xinyi-lim-19 changed the title [xinyi-lim-19] iP [xinyi-lim-19] iP # Bob > “Your mind is for having ideas, not holding them.” – David Allen ([source](https://gettingthingsdone.com)) **Bob** is a friendly chatbot that helps you manage your tasks. It is *text-based*, **easy to use**, and ~~boring~~ actually fun! --- ## ✨ Features - Manage todos, deadlines, and events - Save tasks automatically - Edit tasks without deleting - Cross-platform (CLI + GUI) --- ## 📝 Getting Started 1. Clone the repo 2. Run ./gradlew run 3. Type commands like todo borrow book 4. Let **Bob** do the rest 😉 --- Sep 25, 2025
@xinyi-lim-19 xinyi-lim-19 changed the title [xinyi-lim-19] iP # Bob > “Your mind is for having ideas, not holding them.” – David Allen ([source](https://gettingthingsdone.com)) **Bob** is a friendly chatbot that helps you manage your tasks. It is *text-based*, **easy to use**, and ~~boring~~ actually fun! --- ## ✨ Features - Manage todos, deadlines, and events - Save tasks automatically - Edit tasks without deleting - Cross-platform (CLI + GUI) --- ## 📝 Getting Started 1. Clone the repo 2. Run ./gradlew run 3. Type commands like todo borrow book 4. Let **Bob** do the rest 😉 --- [xinyi-lim-19] iP Sep 25, 2025
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.

7 participants