Skip to content

[Marcus Yeo] iP#667

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

[Marcus Yeo] iP#667
siuuuuuuuuuuuuuuuuuu wants to merge 56 commits into
nus-cs2103-AY2526S1:masterfrom
siuuuuuuuuuuuuuuuuuu:master

Conversation

@siuuuuuuuuuuuuuuuuuu

@siuuuuuuuuuuuuuuuuuu siuuuuuuuuuuuuuuuuuu commented Sep 4, 2025

Copy link
Copy Markdown

Bobby 🚀

"Your mind is for having ideas, not holding them." – David Allen

Bobby frees your mind of having to remember things you need to do.

It's:

  • Text-based
  • Easy to learn
  • FAST
  • Boring SUPER FAST 😉

All you need to do is:

  1. Download it from here
  2. Double-click it
  3. Add your tasks
  4. Let it manage your tasks for you

Features

  • Managing tasks
  • Managing deadlines
  • Reminders (coming soon!)

If you are a Java programmer, you can use it to practice Java too.

public class Main {
    public static void main(String[] args) {
        new Bobby("data/tasks.txt").run();
    }
}

Inline code example: run with java Main.

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

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

Wrong recipient, sorry for the confusion

@Eugene-Lek Eugene-Lek 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.

LGTM. Sorry for being anal. I have no choice because the IP review grading scheme requires me to make comments even if the code is good

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

public class Bobby {
private static final String EXIT_COMMAND = "bye";
private static final String LIST_COMMAND = "list";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

variable names should be in camelCase according to the course's style convention :(

Comment thread src/main/java/BobbyException.java Outdated
@@ -0,0 +1,6 @@
// src/main/java/BobbyException.java
public class BobbyException extends Exception {
public BobbyException(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.

If the BobbyException is no different from a regular Exception, then maybe should just use a regular exception haha

Comment thread src/main/java/Bobby.java Outdated
private static void handleDeadlineCommand(String userInput, ArrayList<Task> tasks) throws BobbyException {
String[] parts = userInput.length() > 8 ? userInput.substring(8).split("/by", 2) : new String[0];
if (parts.length != 2 || parts[0].trim().isEmpty() || parts[1].trim().isEmpty()) {
throw new BobbyException("Whatdatmean what time does the deadline start and end?");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Technically the exception message should mention the possibility that the description is empty haha

marcus and others added 28 commits September 12, 2025 15:56
Previously, users could only mark tasks as done, but there was no way to unmark a task as not done. This limited the flexibility of the task management system, as users could not correct mistakes or update the status of tasks that were marked as done by accident.

This commit introduces the UnmarkCommand, which allows users to unmark a task as not done. The following changes were made:
* Added UnmarkCommand class to handle the unmark operation.
* Updated Parser to recognize the unmark command and return an UnmarkCommand instance.
* Added markAsNotDone method in TaskList to support unmarking tasks.
* Updated Task to include markAsNotDone and added assertions for state transitions.
* Enhanced Ui to provide feedback when a task is unmarked.
* Added assertions in relevant classes to document important assumptions.
* Added/updated tests to cover the unmark functionality.

With this change, users can now unmark tasks, improving the usability and robustness of the application.
Previously, the codebase did not consistently document key assumptions about non-null parameters, valid indices, and invariants. This made it harder to catch programming errors early and to understand the intended constraints at various points in the code.

This commit adds meaningful assert statements throughout the codebase to document important assumptions, such as:
* Non-null parameters in constructors and methods (e.g., file paths, task descriptions, command inputs)
* Valid indices before accessing or modifying lists
* Non-null objects before calling methods or accessing fields
* Correct state transitions (e.g., marking/unmarking tasks)

With these changes, the codebase is now more robust and self-documenting. Running with assertions enabled () will help catch bugs early during development and maintenance.
- Implement ViewScheduleCommand to allow users to view all scheduled tasks for a given date using the command: viewschedule d/M/yyyy
- Update Parser to recognize and parse the viewschedule command and its date argument
- Add getTasksForDate(LocalDate date) method to TaskList to filter and return all Deadlines and Events scheduled for the specified date
- Update Ui with showScheduleForDate to display the schedule in a user-friendly format
- Ensure schedule output is in chronological order by time for the selected date
- ToDos are not included in the schedule as they have no associated date

This feature allows users to easily see their schedule for any chosen day, improving task management and planning.
Add assert statements to document important assumptions
Add viewschedule command to display tasks for a specific date
…tures, and startup enhancements

- Increased the default window width to 700px and set a minimum width for better message separation and usability.
- Made user messages green and bot messages blue for clear visual distinction.
- Styled error messages with a red background and black, unbolded text for better readability.
- Increased profile picture size to 72x72px for better visibility.
- On startup, display the welcome message, today’s schedule, and the todo list as bot messages for improved user experience.
- Loaded dialogbox.css globally in the main application class to ensure consistent styling across all UI components.
- Cleaned up redundant or misplaced CSS loading and fixed FXML to use the robust <styleClass> child element for style assignment.
Merge UI improvement changes to master
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.

5 participants