Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Singh Abdullah Alexander] iP #519

Open
wants to merge 58 commits into
base: master
Choose a base branch
from

Conversation

alexandermula
Copy link

@alexandermula alexandermula commented Sep 1, 2022

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);
    }
}

Copy link

@Kennethsim2000 Kennethsim2000 left a comment

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!

public class Deadline extends Task {
private String description;
private LocalDate date;
private boolean isDone;

Choose a reason for hiding this comment

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

Good naming of booleans:)

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();

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

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>();

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

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

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

//load task objects into array
System.out.println(s.nextLine());
}
}
Copy link

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

@@ -6,15 +6,43 @@ 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();
ArrayList<String> list = new ArrayList<String>();
ArrayList<Task> taskList = new ArrayList<Task>();
Copy link

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

}

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

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