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

[tijngsheng] ip #526

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

Conversation

tjingsheng
Copy link

@tjingsheng tjingsheng commented Sep 3, 2023

Duke project

Hello from

      ██╗██╗███╗   ██╗ ██████╗     ███████╗██╗  ██╗███████╗███╗   ██╗ ██████╗ 
      ██║██║████╗  ██║██╔════╝     ██╔════╝██║  ██║██╔════╝████╗  ██║██╔════╝ 
      ██║██║██╔██╗ ██║██║  ███╗    ███████╗███████║█████╗  ██╔██╗ ██║██║  ███╗
 ██   ██║██║██║╚██╗██║██║   ██║    ╚════██║██╔══██║██╔══╝  ██║╚██╗██║██║   ██║
 ╚█████╔╝██║██║ ╚████║╚██████╔╝    ███████║██║  ██║███████╗██║ ╚████║╚██████╔╝
  ╚════╝ ╚═╝╚═╝  ╚═══╝ ╚═════╝     ╚══════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═══╝ ╚═════╝

Project Description

This is my project, created from a template for a greenfield Java project.
It's named after the Java mascot Duke.
This project is a Java application that aims to provide a user-friendly task management system. It allows users to manage their tasks efficiently and keep track of their schedules.

Features

  • Task Creation: Users can add various types of tasks, including todo, deadline, and event tasks.
  • Task List: View a list of all tasks, including their descriptions and completion status.
  • Task Completion: Mark tasks as complete when they are done.
  • Task Deletion: Remove tasks that are no longer needed.
  • Task Searching: Search for tasks based on keywords.
  • Data Storage: Data is automatically saved and loaded for seamless usage.

Installation Option 1

  1. Go to tjingsheng ip releases

  2. Get Java: Ensure you have a functioning version of Java.

  3. Copy the JAR File: Copy the JAR file you want to run into an empty folder.

  4. Open a Command Window: Open a command prompt (Windows) or terminal (macOS/Linux) in the same folder where you copied the JAR file.

  5. Run the Command: Use the following command to run the JAR file:

  6. Enjoy: Duke is very fun.

    java -jar duke.jar
    

Installation Option 2

  1. Clone the tjingsheng ip repository to your local machine.
  2. Open the project in your preferred Java development environment.
  3. Build and run the application.
  4. Enjoy

Todo List

  • Task 1 : Get duke
  • Task 2 : Experiment with it
  • Task 3 : Profit ???
  • Task 4 : Cry

Project Sample

    /**
     * Runs the Duke application, allowing the user to interact with it via the command line.
     */
    public static void runDuke() {
        Scanner scanner = new Scanner(System.in);
        Ui.helloWorld();
        boolean isConversing = true;
        while (isConversing) {
            String rawCommand = Ui.getUserInput(scanner);
            TaskList taskList = TaskFileHandler.readFromFile();
            Ui.getBotMessage();
            Command command = Parser.parse(rawCommand);
            command.execute(taskList);
            TaskFileHandler.saveToFile(taskList);
            isConversing = !command.isByeCommand();
        }
    }

"Duke hehe Duke hehe" - Jing Sheng

@tjingsheng tjingsheng changed the title Customise the sample Duke Repo [tijngsheng] ip Sep 3, 2023
Copy link

@zhanyang01 zhanyang01 left a comment

Choose a reason for hiding this comment

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

I like how most of the coding standards and coding quality standards are met, good job for the IP so far!

src/main/java/Duke.java Outdated Show resolved Hide resolved
src/main/java/Duke.java Outdated Show resolved Hide resolved
@@ -0,0 +1,29 @@
package Parser;

import Command.*;

Choose a reason for hiding this comment

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

Should wildcard imports be used? Maybe it is better to list them out?

Copy link
Author

Choose a reason for hiding this comment

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

I think * is better as I am importing almost every command in that package

Copy link
Author

Choose a reason for hiding this comment

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

HMMM actually now that I saw this " Rationale: Importing classes explicitly gives an excellent documentation value for the class at hand and makes the class easier to comprehend and maintain. Appropriate tools should be used in order to always keep the import list minimal and up to date. IDE's can be configured to do this easily." in the style guide, I am feeling conflicted.

Choose a reason for hiding this comment

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

How can IDE be configured to do it though?

applied SLAP (and other abstraction mechanisms) to shorten methods e.g.,
extract some code blocks into separate methods. You may ignore this
suggestion if you think a longer method is justified in a particular
case.

Avoid committing binary files (e.g., *.class, *.jar, *.exe) or third-
party library files in to the repo. Removed Sono.zip.

Add improvements to exception handling.
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.

3 participants