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

[vivienherq] iP #529

Open
wants to merge 72 commits into
base: master
Choose a base branch
from
Open
Changes from 2 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
28ad2b8
Add Gradle support
May 24, 2020
ed6d4d2
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
4b12bd6
rename
vivienherq Aug 23, 2023
a6f13d3
greet & exit
vivienherq Aug 23, 2023
6ae3cc1
echo
vivienherq Aug 23, 2023
cfc7c19
store & list
vivienherq Aug 23, 2023
ae180ce
task class
vivienherq Aug 23, 2023
07d666a
mark & unmark
vivienherq Aug 23, 2023
4cec3c5
lvl4 todo, event & deadline classes
vivienherq Aug 23, 2023
a056e50
lvl4 todo
vivienherq Aug 23, 2023
acbfead
lvl4 create todos, events, deadlines
vivienherq Aug 23, 2023
0dadc72
lvl 5 handle errors
vivienherq Sep 1, 2023
91b96cf
lvl 6 delete
vivienherq Sep 1, 2023
2445b29
add text ui testing
vivienherq Sep 6, 2023
8f55d5e
add save tasks and load task
vivienherq Sep 6, 2023
4fc7fc4
implement datetime recognition for deadline
vivienherq Sep 6, 2023
725c47e
Refactor code into Ui, Storage, Parser, TaskList, Command classes
vivienherq Sep 11, 2023
34281a2
Revert latest commit to push to A-MoreOOP Branch
vivienherq Sep 11, 2023
6bcc6ec
Refactor code into Ui, Storage, Parser, TaskList, Command classes
vivienherq Sep 11, 2023
85e358c
Organise classes into packages
vivienherq Sep 11, 2023
8144a1c
Merge branch 'A-Packages'
vivienherq Sep 11, 2023
89204e3
Merge pull request #1 from vivienherq/add-gradle-support
vivienherq Sep 13, 2023
23714e1
Add Gradle support
vivienherq Sep 13, 2023
88e778a
Add JUnit tests
vivienherq Sep 13, 2023
9b188fa
Merge pull request #2 from vivienherq/A-JUnit
vivienherq Sep 13, 2023
1fef7f7
Modify build.gradle for JAR creation
vivienherq Sep 13, 2023
0314cf6
Implement find feature to search for tasks
vivienherq Sep 13, 2023
1e5aa08
Add JavaDocs to methods and classes
vivienherq Sep 13, 2023
9dcbe69
Modify code to apply coding standards
vivienherq Sep 13, 2023
b4f582c
Merge pull request #3 from vivienherq/branch-Level-9
vivienherq Sep 13, 2023
fbeeb36
Merge pull request #4 from vivienherq/branch-A-CodingStandard
vivienherq Sep 13, 2023
5e0e18e
Merge branch 'master' into branch-A-JavaDoc
vivienherq Sep 13, 2023
69be13d
Merge pull request #5 from vivienherq/branch-A-JavaDoc
vivienherq Sep 13, 2023
c6507ac
Fix coding style violations
vivienherq Sep 13, 2023
6fbf6bd
Create GUI for Dude
vivienherq Sep 14, 2023
1f85905
Add functionality to GUI for dude
vivienherq Sep 14, 2023
0e72557
Add user interaction functionality to GUI for Dude
vivienherq Sep 14, 2023
904825f
Merge pull request #6 from vivienherq/branch-Level-10
vivienherq Sep 14, 2023
e0f8bf4
Add assertions
vivienherq Sep 14, 2023
b9eff0b
Improve code quality
vivienherq Sep 14, 2023
b57f610
Merge pull request #7 from vivienherq/branch-A-Assertions
vivienherq Sep 14, 2023
46ac71c
Merge pull request #8 from vivienherq/branch-A-CodeQuality
vivienherq Sep 14, 2023
cc740a9
Set up CI
vivienherq Sep 14, 2023
2a9f2ab
Merge pull request #9 from vivienherq/branch-A-CI
vivienherq Sep 14, 2023
5f3101e
Add Note and NoteList classes
vivienherq Sep 15, 2023
bd2e27d
Add and modify methods to support Notes
vivienherq Sep 15, 2023
1130fc3
Fix Checkstyle violations
vivienherq Sep 15, 2023
35e7c49
Merge pull request #10 from vivienherq/branch-D-Notes
vivienherq Sep 15, 2023
19c71fe
Reorganise project structure and add packages
vivienherq Sep 15, 2023
ffb7e1f
Fix Checkstyle violations
vivienherq Sep 15, 2023
44cfd21
Storage: prevent null values from being returned
vivienherq Sep 15, 2023
c963ac1
Find command: make matching case-insensitive
vivienherq Sep 15, 2023
af043e0
Configure dimension and layout of GUI
vivienherq Sep 15, 2023
d2a8732
Improve GUI
vivienherq Sep 17, 2023
999bd2d
Merge pull request #12 from vivienherq/branch-A-BetterGui
vivienherq Sep 17, 2023
1c87ec3
Add delete note command
vivienherq Sep 22, 2023
2a15d2d
Add additional checks for error handling
vivienherq Sep 22, 2023
94c8ed9
Add exceptions to Parser class
vivienherq Sep 22, 2023
fa95713
Add exceptions to Storage class
vivienherq Sep 22, 2023
c40cdf4
Improve error checking and exception handling for date and time
vivienherq Sep 22, 2023
e3b47f8
Merge pull request #13 from vivienherq/branch-A-MoreErrorHandling
vivienherq Sep 22, 2023
a527597
Add delay before exiting and closing GUI
vivienherq Sep 22, 2023
3a58feb
Add personality for Dude
vivienherq Sep 22, 2023
7197092
Merge pull request #14 from vivienherq/branch-A-Personality
vivienherq Sep 22, 2023
8abaff7
Improve exception handling for parser
vivienherq Sep 22, 2023
14375d2
Upload image of UI
vivienherq Sep 22, 2023
1c14b2f
Improve code quality
vivienherq Sep 22, 2023
fbe3510
Update README.md
vivienherq Sep 23, 2023
4044a2c
Find command: support searching notes
vivienherq Sep 23, 2023
224d2a7
Update README.md
vivienherq Sep 23, 2023
8ec8d9e
Refactor classes into packages
vivienherq Sep 23, 2023
ddb13e1
Configure build.gradle to create fat JAR file
vivienherq Sep 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/dude/Dude.java
Original file line number Diff line number Diff line change
@@ -15,13 +15,15 @@ public class Dude {
public Dude(String filePath) {
this.ui = new Ui();
this.storage = new Storage(filePath);

try {
taskList = new TaskList(storage.loadTasksFromDisk());
} catch (FileNotFoundException e) { // DudeException
ui.showLoadingError();
taskList = new TaskList();
}
}

public void run() {
ui.showWelcome();
boolean isExit = false;
3 changes: 1 addition & 2 deletions src/main/java/dude/Parser.java
Original file line number Diff line number Diff line change
@@ -7,8 +7,8 @@

// deals with making sense of the user command
public class Parser {

private static DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm");

public static Command parse(String fullCommand) {
String[] commandDetails = fullCommand.split(" ", 2);
String commandType = commandDetails[0];
@@ -55,5 +55,4 @@ public static Command parse(String fullCommand) {
}
return c;
}

}
5 changes: 4 additions & 1 deletion src/main/java/dude/Storage.java
Original file line number Diff line number Diff line change
@@ -22,6 +22,7 @@ public Storage(String filepath) {

public void saveTasksToDisk(TaskList taskList) throws IOException {
File file = new File(this.filepath);

if (!file.exists()) {
try {
if (file.createNewFile()) {
@@ -35,6 +36,7 @@ public void saveTasksToDisk(TaskList taskList) throws IOException {
}

String data = "";

for (int i = 0; i < taskList.getSize(); i++) {
Task task = taskList.getTask(i);
data += task.saveTask();
@@ -51,8 +53,8 @@ public void saveTasksToDisk(TaskList taskList) throws IOException {

public ArrayList<Task> loadTasksFromDisk() throws FileNotFoundException {
ArrayList<Task> taskList = new ArrayList<Task>();

File file = new File(this.filepath);

if (file.exists()) {
try {
Scanner sc = new Scanner(file);
@@ -93,6 +95,7 @@ public ArrayList<Task> loadTasksFromDisk() throws FileNotFoundException {
System.out.println(e.getMessage());
}
}

System.out.printf("You have %d saved tasks.\n", taskList.size());
// TaskList tasks = new TaskList(taskList);
return taskList;
2 changes: 1 addition & 1 deletion src/main/java/dude/TaskList.java
Original file line number Diff line number Diff line change
@@ -33,14 +33,14 @@ public Task markTask(int index) {
task.setDone(true);
return task;
}

public Task unmarkTask(int index) {
Task task = taskList.get(index);
task.setDone(false);
return task;
}

// add

public void addTask(Task task) {
taskList.add(task);
}
12 changes: 11 additions & 1 deletion src/main/java/dude/Ui.java
Original file line number Diff line number Diff line change
@@ -5,25 +5,29 @@

import java.util.Scanner;
public class Ui {
Scanner sc;
private Scanner sc;
public Ui() {
this.sc = new Scanner(System.in);
}
public String readCommand() {
return this.sc.nextLine();
}

public void showWelcome() {
String greeting = "Hello, I'm Dude!\n" +
"What can I do for you?";
System.out.println(greeting);
}

public void showFarewell() {
String greeting = "Bye. Hope to see you again soon!";
System.out.println(greeting);
}

public void showLine() {
System.out.println("__________________________________________________");
}

public void showTaskList(TaskList taskList) {
int nTasks = taskList.getSize();
if (nTasks == 0) {
@@ -35,30 +39,36 @@ public void showTaskList(TaskList taskList) {
}
}
}

public void showMarkedTask(Task task) {
System.out.println("Nice! I've marked this task as done:");
System.out.printf(task.toString());
System.out.println();
// task is already done?
}

public void showUnmarkedTask(Task task) {
System.out.println("Nice! I've marked this task as as not done yet:");
System.out.printf(task.toString());
System.out.println();
// task is already undone?
}

public void showDeletedTask(Task task, int nTasks) {
System.out.println("Noted. I've removed this task:");
System.out.println(task.toString());
System.out.printf("Now you have %d tasks in the list.\n", nTasks);
}

public void showAddedTask(Task task, int nTasks) {
System.out.printf("Got it. I've added this task:\n%s\n", task.toString());
System.out.printf("Now you have %d tasks in the list. \n", nTasks);
}

public void showUnknownCommand() {
System.out.println(" OOPS!!! I'm sorry, but I don't know what that means :-(");
}

public void showError(String message) {
}

2 changes: 2 additions & 0 deletions src/main/java/dude/command/AddDeadlineCommand.java
Original file line number Diff line number Diff line change
@@ -11,10 +11,12 @@
public class AddDeadlineCommand extends Command {
private String taskDescription;
private LocalDateTime byDateTime;

public AddDeadlineCommand(String taskDescription, LocalDateTime byDateTime) {
this.taskDescription = taskDescription;
this.byDateTime = byDateTime;
}

@Override
public void execute(TaskList taskList, Ui ui, Storage storage) {
try {
2 changes: 2 additions & 0 deletions src/main/java/dude/command/AddEventCommand.java
Original file line number Diff line number Diff line change
@@ -12,11 +12,13 @@ public class AddEventCommand extends Command {
private String taskDescription;
private LocalDateTime fromDateTime;
private LocalDateTime toDateTime;

public AddEventCommand(String taskDescription, LocalDateTime fromDateTime, LocalDateTime toDateTime) {
this.taskDescription = taskDescription;
this.fromDateTime = fromDateTime;
this.toDateTime = toDateTime;
}

@Override
public void execute(TaskList taskList, Ui ui, Storage storage) {
try {
2 changes: 2 additions & 0 deletions src/main/java/dude/command/AddToDoCommand.java
Original file line number Diff line number Diff line change
@@ -9,9 +9,11 @@

public class AddToDoCommand extends Command {
private String taskDescription;

public AddToDoCommand(String taskDescription) {
this.taskDescription = taskDescription;
}

@Override
public void execute(TaskList taskList, Ui ui, Storage storage) {
try {
2 changes: 2 additions & 0 deletions src/main/java/dude/command/DeleteCommand.java
Original file line number Diff line number Diff line change
@@ -9,9 +9,11 @@

public class DeleteCommand extends Command {
private int taskIndex;

public DeleteCommand(int taskIndex) {
this.taskIndex = taskIndex;
}

@Override
public void execute(TaskList taskList, Ui ui, Storage storage) {
try {
2 changes: 2 additions & 0 deletions src/main/java/dude/command/MarkCommand.java
Original file line number Diff line number Diff line change
@@ -9,9 +9,11 @@

public class MarkCommand extends Command {
private int taskIndex;

public MarkCommand(int taskIndex) {
this.taskIndex = taskIndex;
}

@Override
public void execute(TaskList taskList, Ui ui, Storage storage) {
try {
4 changes: 4 additions & 0 deletions src/main/java/dude/task/Deadline.java
Original file line number Diff line number Diff line change
@@ -6,14 +6,17 @@

public class Deadline extends Task {
LocalDateTime by;

public Deadline(String description, LocalDateTime by) {
super(description);
this.by = by;
}

@Override
public String getType() {
return "deadline";
}

@Override
public String saveTask() {
String data = "D | ";
@@ -26,6 +29,7 @@ public String saveTask() {
data = data + " | " + this.by + "\n"; // ISO-8601 e.g. 2023-09-06T14:30
return data;
}

@Override
public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy hh:mm a", Locale.ENGLISH);
3 changes: 3 additions & 0 deletions src/main/java/dude/task/Event.java
Original file line number Diff line number Diff line change
@@ -12,10 +12,12 @@ public Event(String description, LocalDateTime from, LocalDateTime to) {
this.from = from;
this.to = to;
}

@Override
public String getType() {
return "event";
}

@Override
public String saveTask() {
String data = "E | ";
@@ -28,6 +30,7 @@ public String saveTask() {
data = data + " | " + this.from + " | " + this.to + "\n";
return data;
}

@Override
public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy hh:mm a", Locale.ENGLISH);
8 changes: 4 additions & 4 deletions src/main/java/dude/task/Task.java
Original file line number Diff line number Diff line change
@@ -2,23 +2,23 @@

public class Task {
private String description;
private boolean done;
private boolean isDone;

Task(String description) {
this.description = description;
this.done = false;
this.isDone = false;
}

public boolean isDone() {
return this.done;
return this.isDone;
}

public String getDescription() {
return this.description;
}

public void setDone(boolean done) {
this.done = done;
this.isDone = done;
}

public String getType() {
3 changes: 3 additions & 0 deletions src/main/java/dude/task/ToDo.java
Original file line number Diff line number Diff line change
@@ -4,13 +4,16 @@ public class ToDo extends Task {
public ToDo(String description) {
super(description);
}

@Override
public String getType() {
return "todo";
}

@Override
public String saveTask() {
String data = "T | ";

if (this.isDone()) {
data += "1 | ";
} else {