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

sarjinius iP #474

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

sarjinius iP #474

wants to merge 59 commits into from

Conversation

sarjinius
Copy link

@sarjinius sarjinius commented Feb 7, 2024

Virtue

"You have power over your mind - not outside events. Realize this, and you will find strength." ― Marcus Aurelius (source)

Virtue frees your mind from having to remember things you need to do. It's,

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

All you need to use 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 (coming soon)
  • Reminders (coming soon)

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

public class Virtue {
    public static void main(String[] args) {
        Virtue virtue = new Virtue();
        virtue.run();
    }
}

damithc and others added 23 commits January 7, 2024 18:33
Let's tweak the docs/README.md (which is used as the user guide)
to fit Duke better. Specifically,

1. mention product name in the title
2. mention adding a product screenshot and a product intro
3. tweak the flow to describe feature-by-feature
@sarjinius sarjinius changed the title sarjinius sarjinius iP Feb 7, 2024
Copy link

@dedsecrattle dedsecrattle left a comment

Choose a reason for hiding this comment

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

Overall , I Like the code logic , needs improvement in Code structuring

import java.util.ArrayList;
import java.util.Objects;
import java.util.Scanner;

public class Duke {

Choose a reason for hiding this comment

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

Different Classes can be placed in a separate file for better readability?
e.g Creating Task.java to store the Class Task

// Checks if the last input is todo.
private boolean isCommandTodo(String command) {
String firstWord = getFirstWord(command);
return Objects.equals(firstWord, "todo");

Choose a reason for hiding this comment

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

reductant use of Object.equals method can be checked using String equality

}

// Takes inputs from user until bye has been input.
private void takeInputsUntilBye() {

Choose a reason for hiding this comment

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

method name although is intuitive , but it can be made a bit more general e.g userInput

sarjinius and others added 30 commits February 14, 2024 01:36
* branch-Level-8:
  Adds ability for chatbot to understand dates and times.
* add-gradle-support:
  Bump gradle and lib version
  Add Gradle support
  docs/README.md: Tweak document template
* branch-Level-9:
  Adds a find method that can filter the task list by a keyword.
* branch-A-JavaDoc:
  JavaDoc modified to follow coding standard
  Added JavaDoc to most classes and methods

# Conflicts:
#	src/main/java/virtue/VirtueTask.java
#	src/main/java/virtue/VirtueTaskList.java
* branch-A-CodingStandard:
  Code modified to follow the coding standard

# Conflicts:
#	src/main/java/virtue/Ui.java
#	src/main/java/virtue/Virtue.java
#	src/main/java/virtue/VirtueTaskList.java
* branch-A-CheckStyle:
  Finds coding style violations and resolves them
* branch-Level-10:
  Incorporates a GUI into the chatbot.
The sandwich and indent features are obsolete due to the new GUI.

The applyCommand method is better not without
a String output because it is public.

Let's
* remove the sandwich and indent methods in Virtue class
* remove its usages
* create a resultMessage field in Command class
* make the applyCommand method set the Command resultMessage
* master:
  Adds assert checks to the code

# Conflicts:
#	src/main/java/virtue/Virtue.java
#	src/main/java/virtue/VirtueTaskList.java
Refactors the code to improve code quality.
* 'master' of https://github.com/sarjinius/ip:
  Refactors the code to improve code quality.
The mark, unmark, and delete commands
can be applied to several tasks.

Adding this features makes it more convenient for the user.

Let's,
* update the getIndex method to accept multiple indices
* update the markTasksAsDone, markTasksAsNotDone, and deleteTasks
  methods to accept an array of indices
* branch-C-MassOps:
  Provide a way to perform commands on multiple tasks
Several lines in the getIndices method were taken and modified from several websites.

Let's,
* add comments citing the sources for the code
A good product screenshot showcases the product in its full glory.

Let's,
* produce a sample run with realistic data
* take a screenshot of the sample run
* add the screenshot to the docs folder
A user guide is needed for users to understand how to use
the chatbot's commands.

Let's add the command details and examples, together with
the Ui.png image, to the user guide.
When a user inputs an empty description or index,
or an index out of range, the user must be alerted.

Let's,
* check if a description is not entirely whitespace
* check if all indices are in the appropriate range
* alert the user if the conditions are not satisfied
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