Skip to content

[Print2PDF] iP#662

Open
Print2PDF wants to merge 46 commits into
nus-cs2103-AY2526S1:masterfrom
Print2PDF:master
Open

[Print2PDF] iP#662
Print2PDF wants to merge 46 commits into
nus-cs2103-AY2526S1:masterfrom
Print2PDF:master

Conversation

@Print2PDF

@Print2PDF Print2PDF commented Sep 4, 2025

Copy link
Copy Markdown

PrintBot 🤖 - Your Personal Task Manager

"The secret of getting ahead is getting started. The secret of getting started is breaking your complex, overwhelming tasks into small, manageable tasks, and then starting on the first one."

— Mark Twain (source)

PrintBot 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 the lastest PrintBot.jar file.
  3. Add your tasks using simple commands.
  4. Let it manage your tasks for you 😊

And it is FREE!

Features

Here are some things PrintBot can do:

  • Add simple tasks with todo

  • Add time sensitive tasks with deadline

  • Schedule events with event

  • Delete tasks with delete

  • Mark tasks as done with mark

  • Mark tasks as not done with unmark

  • View all tasks with list

  • Automatically save and load your previous tasks

  • Search for task with find

  • See all available commands with help

  • Sort tasks by urgency (coming soon)

Command Examples

Here are the available commands you can try:

Task Management

# Add a simple todo task
todo read book

# Add a deadline task  
deadline return book /by 02/12/2019 23:59

# Add an event with time range
event project meeting /from 19/09/2025 14:00 /to 19/09/2025 16:00

# Mark a task as done 👍
mark 1

# Mark a task as not done 👎
unmark 1

# Delete a task
delete 2

View Tasks

# List all tasks
list

# Find tasks containing keyword
find book

Need help?

# Ask PrintBot for help 😊
help

Sample Interaction

Ui

Architecture

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

public class Launcher {

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

}

Curious about our task formats?

We support three types of tasks:

Type Symbol Format Example
Todo [T] todo <description> todo read book
Deadline [D] deadline <description> /by <due date> deadline return book /by 11/09/2025 17:00
Event [E] event <description> /from <start> /to <end> event meeting /from 24/08/2025 14:00 /to 24/08/2025 16:00

Note:

datetime is in dd/MM/yyyy HH:mm format
mark, unmark and delete use 1-based indexing

Use of AI-assisted work

This project has been developed with the assistance of GitHub Copilot to enhance productivity and code quality. All code generated or suggested by these AI tools has been reviewed and modified as necessary to ensure it meets the project's standards and requirements.

damithc and others added 11 commits July 11, 2024 16:52
In build.gradle, the dependencies on distZip and/or distTar causes
the shadowJar task to generate a second JAR file for which the
mainClass.set("seedu.duke.Duke") does not take effect.
Hence, this additional JAR file cannot be run.
For this product, there is no need to generate a second JAR file
to begin with.

Let's remove this dependency from the build.gradle to prevent the
shadowJar task from generating the extra JAR file.

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

Looks good overall :)
Some improvements for code quality - naming is suggested


public static void main(String[] args) {

Scanner userInput = new Scanner(System.in);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I felt that the name userInput for the scanner object was misleading, especially since you have currUserInput in the next line
I would suggest something like inputScanner instead


String[] parts = input.split(" ", 2);
String command = parts[0].toLowerCase();
String restOfInput = parts.length > 1 ? parts[1] : "";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Perhaps the name ( restOfInput ) could be more descriptive to better explain what it would hold.
For example arguments

Comment thread src/main/java/ScriptKiddie/Task.java Outdated
* Getter
* Return mark status
*/
public boolean isItMarked() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I would suggest a more conventional naming for the getter
Something like getIsMarked


}

public static Task parseTask(String input) throws SKException {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nice use of verbs for methods!

AddCommand.java and DeleteCommand.java have merge issues

Manually edited both files
Follow merge diagram given at CS2103T github
Follow merge diagram at CS2103T github
master not showing latest on github

add corrections and commit again
No help page or list

enter help calls HelpCommand
\n\n

datetime is not read and write correctly

\n\n

datetime to string conversion is now in parser
\n\n

functions botMark, botUnmark, botDelete have repeating code

\n\n

functions botAdd__ have nested statements

\nremove nested statements and abstract out repeated code
UserGuide is previously default Duke description

Update README.md to user guide for PrintBot
PrintBot has default duke README.md file

Update README.md to PrintBot user guide
PrintBot has simple gui and fixed window

Modify MainWindows.fxml to anchored text field, send button and scroll pane
Create CSS files and link to FXML for better gui aesthetic
PrintBot use default aesthetic from CS2103T JavaFX tutorial

Modify background to black
Modify text font
Modify dialog box format
PrintBot missing Ui.png

Add Ui.png to docs
Finalise GUI
PrintBot version for release on GitHub
- Missing: Ai usage not correctly shown in ip
- Missing: AI.md document missing in ip

- New: AI.md with correct AI usage add to ip
Gui image example is currently outdated, representing v0.2

Add Ui.png to README.md document

Separate v0.2 and v1.0 gui images to help users differentiate
Missing latest gui image in README.md
Missing merge requirement for git standard

Update README.md
Merge PR into master
Incorrect save and write format for PrintBot
Incorrect exception handling display for index out of bounds
Incorrect application does not close on exit command

Correct save and write format for Deadline and Event tasks
Replace exception thrown when index out of bounds
Add functionality to close application on exit command
Remove unused code
Add JavaDocs for more functions
CodeQuality is not up to date

Missing several Javadoc comments
Incorrect save and read functionality for PrintBot
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