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

[Irminrics] iP #12

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

Conversation

angjunkang
Copy link

@angjunkang angjunkang commented Jan 17, 2023

Dude

“Your mind is for having ideas, not holding them.” – David Allen (source)

Dude frees your mind of having to remember things you need to do. 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
  • Finding Keywords
  • Reminders (coming soon)

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

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

damithc and others added 30 commits July 31, 2022 17:20
Details: Dude is using LocalDateTime for task details
Details: Added validation to Dude's deletion task
Conflicts to be resolved in the next commit: Event.java, Dude.java
He is now lacking validations for commands and will be fixed soon.
Copy link

@amoonguss1 amoonguss1 left a comment

Choose a reason for hiding this comment

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

Overall, super clean code and easy-to-understand code! Basically, no coding standard violations from what I see.😄

Comment on lines 26 to 28
public enum CommandType {
LIST, MARK, UNMARK, TODO, DEADLINE, EVENT, DELETE, FIND, BYE
}

Choose a reason for hiding this comment

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

I like how you used enums to ensure type safety of the commands.

* @param command Command input provided by user.
* @throws DudeException If command is not valid.
*/
public static void validate(CommandType commandType, String command) throws DudeException {

Choose a reason for hiding this comment

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

I think this is a smart way to handle the input exceptions!

Comment on lines 37 to 39
/**
* Runs Dude program.
*/

Choose a reason for hiding this comment

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

I feel like this could be a bit more descriptive.

/**
* Handles the entire dude program
*/
public class Dude {

Choose a reason for hiding this comment

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

Clean and easy to understand!

angjunkang and others added 21 commits February 4, 2023 02:38
Dude has no assertions

Assertions are used to define assumptions about the program state so that the runtime can verify them.

Let's add assertions to check for functions preconditions/parameter

This ensures that the inputs for functions are validated and ensured for correctness
Dude has no usage of guard clause

Guard clause helps to keep the main/happy path unindented

Let's add guard clause to the execute function in MarkCommand and UnmarkCommand

This deals with unusual conditions as soon as they are detected so that
the reader does not have to remember them for long
Users of Dude are unable to undo their previous command.

This is a quality of life feature which allows them to undo mistakes.

Let's add a feature which saves the previous state of task list for the
users to undo upon a new command.
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.

None yet

2 participants