Skip to content

[Singh Abdullah Alexander] iP - #519

Open
alexandermula wants to merge 58 commits into
nus-cs2103-AY2223S1:masterfrom
alexandermula:master
Open

[Singh Abdullah Alexander] iP#519
alexandermula wants to merge 58 commits into
nus-cs2103-AY2223S1:masterfrom
alexandermula:master

Conversation

@alexandermula

@alexandermula alexandermula commented Sep 1, 2022

Copy link
Copy Markdown

Chacha

“If you fail to plan, you are planning to fail.” – Benjamin Franklin (view quote)

Chacha helps you plan an track upcoming tasks. It's,

  • text-based
  • easy to learn
  • FAST SUPER FAST to use

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 😊

And it is FREE!

Features:

  • Managing tasks
  • Managing deadlines
  • Managing events
  • Sorting tasks
  • Reminders (coming soon)

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

public class Launcher {
    public static void main(String[] args) {
        Application.launch(Main.class, args);
    }
}

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

Ultimately, good job on the code!

Comment thread src/main/java/Deadline.java Outdated
public class Deadline extends Task {
private String description;
private LocalDate date;
private 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.

Good naming of booleans:)

Comment thread src/main/java/Chacha.java Outdated
public static void main(String[] args) {
System.out.println("Hello! I'm Chacha\n" + "What can I do for you?");
Scanner input = new Scanner(System.in);
String s = input.nextLine();

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe can name s differently? To a clearer variable

Comment thread src/main/java/Chacha.java Outdated
System.out.println("Hello! I'm Chacha\n" + "What can I do for you?");
Scanner input = new Scanner(System.in);
String s = input.nextLine();
ArrayList<Task> taskList = 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.

Good that the variable names are in camel case

@@ -0,0 +1,102 @@
package chacha;

import java.io.BufferedWriter;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe you should consider adding spaces in between import statements from different packages to improve readability.

dateTime = LocalDateTime.parse(date, formatter);
}
Task task = new Task();
switch (type) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The indentation for the switch statement does not follow the recommended standard. 'switch' and 'case' should have the same indentation.
switch statement

Comment thread src/main/java/Chacha.java Outdated
//load task objects into array
System.out.println(s.nextLine());
}
}

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 looks clean and should have no problem finishing up the ip

Comment thread src/main/java/Chacha.java Outdated
Scanner input = new Scanner(System.in);
String s = input.nextLine();
ArrayList<String> list = new ArrayList<String>();
ArrayList<Task> taskList = 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 taskList a private static final field in the class

Comment thread src/main/java/Chacha.java Outdated
t.getDescription());
}

} else if (s.contains("unmark")) {

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 using s.startsWith function to check if the task type is indeed the first input

alexandermula and others added 30 commits September 9, 2022 03:42
# Conflicts:
#	src/main/java/chacha/TaskList.java
#	src/main/java/chacha/commands/ExitCommand.java
#	src/main/java/chacha/commands/ListCommand.java
#	src/main/java/chacha/tasks/Deadline.java
#	src/main/java/chacha/tasks/Todo.java
# Conflicts:
#	src/main/java/chacha/Ui.java
Sort command is null safe to handle todo tasks.

A sort is necessary for users to sort tasks chronologically.

Using a custom comparator class for tasks is preferable because other sorting parameters such as description can be added later.

Refer to this S/O discussion on dealing with multiple comparators as a chain
https://codereview.stackexchange.com/questions/229497/handle-null-in-comparator-class
Find command finds returns all tasks with any of the keywords.

A find command which accepts multiple arguments is more user-friendly for users who wish to search for multiple types of tasks at once.
Find command: add varargs to pass multiple keywords
Enums control the switch statement in parser.

A separate enum class will allow for ease of future additions of commands.
Edit the fxml view files to update styling for GUI.

Styling the GUI makes the chatbot more user friendly.
Modify UI responses and error responses to create personality for Chacha.

Adding a personality improves user-friendliness of Chacha's interactions with users.
Github page as documentation for user.

By adding a website, users can easily refer to usage of the product.
-Fix arrowhead in Chacha getResponse
-Fix Parser SLAP
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