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

[Johannes] iP #498

Open
wants to merge 66 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
f1c8472
Added Level-1 functionality, Greet, Echo, Exit
jwdavis0200 Aug 17, 2022
187c115
Fixed cosmetic bugs and a technical bug where whitespace will result …
jwdavis0200 Aug 17, 2022
324e89a
Added bye method for more general implementation for the end of opera…
jwdavis0200 Aug 17, 2022
9734e6d
Added storeman method for storing of lists of input and outputting th…
jwdavis0200 Aug 17, 2022
5fc2e89
Added Task Class to encapsulate tasks passed as input.
jwdavis0200 Aug 17, 2022
de5b284
Added three subclasses of Task; Deadline, Event, Todo
jwdavis0200 Aug 17, 2022
e014ef7
Removed reduncant, unused checklist method
jwdavis0200 Aug 17, 2022
31322c5
Edited Todo Class to meet specifications of project
jwdavis0200 Aug 17, 2022
f6a01bb
Added support for tracking of three types of classes, Todo, Event and…
jwdavis0200 Aug 17, 2022
a0d05fa
Replaced contains method with startsWith for program correctness and …
jwdavis0200 Aug 17, 2022
18f224e
Added three subclasess of Task; Todo, Event, Deadline
jwdavis0200 Aug 17, 2022
288b3d9
removed redundant, not used checklist method(checklist functionality …
jwdavis0200 Aug 17, 2022
25b4a83
Various bug fix for Level-3
jwdavis0200 Aug 17, 2022
ff240bc
Change to Guard clause to ensure correctness and better flexibility o…
jwdavis0200 Aug 17, 2022
f86fe54
Bug Fix for Event TAG attribute
jwdavis0200 Aug 17, 2022
0be8c1d
Added support for subclasses of Task; for Todo, Event, Deadline tracking
jwdavis0200 Aug 17, 2022
71136ec
Added DukeException for throwing Duke-caused Exceptions
jwdavis0200 Aug 17, 2022
e80eff2
Added feature for storeman method to throw DukeException if input is …
jwdavis0200 Aug 17, 2022
238cd67
Added to gitignore
jwdavis0200 Aug 17, 2022
0b8ae87
added to gitignore
jwdavis0200 Aug 17, 2022
e0c1635
Support for delete added
jwdavis0200 Aug 17, 2022
e6d2fb3
updated gitignore, added test-ui-test(but to be configured to be igno…
jwdavis0200 Aug 17, 2022
cecaaf1
removed debug statement
jwdavis0200 Aug 17, 2022
88cf1a8
update files to be ignored
jwdavis0200 Aug 18, 2022
2a3278f
Updated input, expected and actual as well as runtest.bat to automate…
jwdavis0200 Aug 18, 2022
eee3ade
Merge branch 'master' into temp
jwdavis0200 Aug 18, 2022
cc7549a
Merge pull request #1 from jwdavis0200/temp
jwdavis0200 Aug 18, 2022
925dbc0
Add save and load functionality to Duke and minor changes to String r…
jwdavis0200 Aug 24, 2022
1935377
Add storage.txt as a file to be ignored by .gitignore
jwdavis0200 Aug 24, 2022
6d29dff
Merge pull request #2 from nus-cs2103-AY2223S1/add-gradle-support
jwdavis0200 Aug 24, 2022
b00830b
Enable Duke to process inputs by users for time-related inputs to be …
jwdavis0200 Aug 24, 2022
8f29232
Merge branch 'branch-level-7'
jwdavis0200 Aug 25, 2022
f30de1d
Modify toString methods of Deadline and Event
jwdavis0200 Aug 25, 2022
7d023d1
Merge branch 'master' of https://github.com/jwdavis0200/ip_own
jwdavis0200 Aug 25, 2022
ce2c786
Remove wildcard import in favour of specific imports of classes
jwdavis0200 Aug 25, 2022
8198c1d
Add more OOP principles
jwdavis0200 Aug 25, 2022
d1bdfa7
Add Parser class
jwdavis0200 Aug 25, 2022
31df34b
Modify Duke, Storage, TaskList, Ui class to support OOP principles wi…
jwdavis0200 Aug 25, 2022
dd3160c
Remove some import messages.
jwdavis0200 Aug 25, 2022
f895775
Add folders and package the classes.
jwdavis0200 Aug 25, 2022
a69734c
Add basic JUnit tests for Event and Todo classes
jwdavis0200 Aug 25, 2022
b7bf4d6
Add find functionality to Duke
jwdavis0200 Aug 25, 2022
c2f31b8
Add task to build.gradle file to automate building of fat jar and rem…
jwdavis0200 Aug 26, 2022
8e3c478
Remove method add from Storage class, implement add method in TaskLis…
jwdavis0200 Aug 26, 2022
fd27527
Fix code to meet Checkstyle.
jwdavis0200 Aug 30, 2022
244af75
Add incomplete Basic GUI functionality to Duke
jwdavis0200 Aug 31, 2022
7587212
Document classes implementing UI.
jwdavis0200 Aug 31, 2022
14a0ab7
Change save method into static
jwdavis0200 Sep 7, 2022
0eeb832
Modify build.gradle
jwdavis0200 Sep 7, 2022
61b464b
Add Assert statements.
jwdavis0200 Sep 7, 2022
bf94579
Merge pull request #3 from jwdavis0200/branch-Assertions
jwdavis0200 Sep 7, 2022
e5945b3
Improve Code Quality
jwdavis0200 Sep 7, 2022
ac4d7b7
Improve Code Quality
jwdavis0200 Sep 7, 2022
e538329
Merge pull request #4 from jwdavis0200/branch-CodingStandard
jwdavis0200 Sep 7, 2022
fd4355d
Add duplicate detection feature to Duke.
jwdavis0200 Sep 13, 2022
18b975d
Update README.md
jwdavis0200 Sep 13, 2022
e3ae2d2
Update README.md
jwdavis0200 Sep 14, 2022
a767bfe
Modify README to suit product for user guide.
jwdavis0200 Sep 14, 2022
398ecc7
Merge branch 'master' of https://github.com/jwdavis0200/ip_own
jwdavis0200 Sep 14, 2022
12e32db
Modify to fix file reading bug
jwdavis0200 Sep 15, 2022
0eb20d2
Update Readme
jwdavis0200 Sep 16, 2022
5f60da7
Modify the guard clauses of Storage constructor.
jwdavis0200 Sep 16, 2022
990680c
Remove HTML tracking.
jwdavis0200 Sep 16, 2022
d43ca9b
Move README.md
jwdavis0200 Sep 16, 2022
117f869
Update build.gradle for name of archive
jwdavis0200 Sep 24, 2022
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ src/main/resources/docs/
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
/text-ui-test/EXPECTED-UNIX.TXT
storage.txt
74 changes: 74 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'checkstyle'

}
checkstyle {
toolVersion= '10.2'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'
String javaFxVersion = '11'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'linux'
}

test {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed"

showExceptions true
exceptionFormat "full"
showCauses true
showStackTraces true
showStandardStreams = false
}
}

application {
mainClassName = "seedu.duke.Duke"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

run{
standardInput = System.in
}

jar {
manifest {
attributes "Main-Class" : "dukechatbot.duke.Duke"
}
}
task customFatJar(type: Jar) {
manifest.from jar.manifest
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
baseName 'DukeChatbot'
with jar

}
245 changes: 245 additions & 0 deletions docs/allclasses-index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Fri Aug 26 17:48:11 SGT 2022 -->
<title>All Classes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-08-26">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="All Classes";
}
}
catch(err) {
}
//-->
var data = {"i0":2,"i1":2,"i2":8,"i3":2,"i4":2,"i5":2,"i6":2,"i7":2,"i8":2,"i9":2,"i10":2,"i11":2};
var tabs = {65535:["t0","All Classes"],2:["t2","Class Summary"],8:["t4","Exception Summary"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</div>
<div class="allClassesContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><a href="dukechatbot/utility/Deadline.html" title="class in dukechatbot.utility">Deadline</a></td>
<th class="colLast" scope="row">
<div class="block">The Deadline class implements a subclass of Task that encapsulates the type of tasks that has a specific
deadline.</div>
</th>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><a href="dukechatbot/duke/Duke.html" title="class in dukechatbot.duke">Duke</a></td>
<th class="colLast" scope="row">
<div class="block">The Duke program implements an application that allows users
to interactively create a task list for them to keep track of their tasks.</div>
</th>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><a href="dukechatbot/dukeexception/DukeException.html" title="class in dukechatbot.dukeexception">DukeException</a></td>
<th class="colLast" scope="row">
<div class="block">The DukeException class implements the exceptions thrown by the Duke application when commands input
are unknown.</div>
</th>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><a href="dukechatbot/utility/Event.html" title="class in dukechatbot.utility">Event</a></td>
<th class="colLast" scope="row">
<div class="block">The Event class implements a subclass of Task that encapsulates the type of tasks that has a
duration associated with it.</div>
</th>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><a href="dukechatbot/utility/EventTest.html" title="class in dukechatbot.utility">EventTest</a></td>
<th class="colLast" scope="row">
<div class="block">The EventTest class is a test class to test the correctness of
the Event class.</div>
</th>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><a href="dukechatbot/utility/Parser.html" title="class in dukechatbot.utility">Parser</a></td>
<th class="colLast" scope="row">
<div class="block">The Parser class implements the class that will parse input commands passed to the Duke program.</div>
</th>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><a href="dukechatbot/utility/Storage.html" title="class in dukechatbot.utility">Storage</a></td>
<th class="colLast" scope="row">
<div class="block">The Storage class encapsulates the operations on the file to be read and written.</div>
</th>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><a href="dukechatbot/utility/Task.html" title="class in dukechatbot.utility">Task</a></td>
<th class="colLast" scope="row">
<div class="block">The Task class implements the parent class of the tasks to be kept in the task list when the program is called.</div>
</th>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><a href="dukechatbot/utility/TaskList.html" title="class in dukechatbot.utility">TaskList</a></td>
<th class="colLast" scope="row">
<div class="block">The TaskList implements the operations and attributes needed to handle
manipulation of the task list.</div>
</th>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><a href="dukechatbot/utility/Todo.html" title="class in dukechatbot.utility">Todo</a></td>
<th class="colLast" scope="row">
<div class="block">The Todo class implements the type of tasks that are to be done
but do not have an associated deadline or time component to them.</div>
</th>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><a href="dukechatbot/utility/TodoTest.html" title="class in dukechatbot.utility">TodoTest</a></td>
<th class="colLast" scope="row">
<div class="block">The TodoTest class implements test cases to determine
the correctness of the Todo class.</div>
</th>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><a href="dukechatbot/utility/Ui.html" title="class in dukechatbot.utility">Ui</a></td>
<th class="colLast" scope="row">
<div class="block">The Ui class encapsulates operations that
interact with the client during the running of the program.</div>
</th>
</tr>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
39 changes: 39 additions & 0 deletions docs/allclasses.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Fri Aug 26 17:48:11 SGT 2022 -->
<title>All Classes</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2022-08-26">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<main role="main" class="indexContainer">
<ul>
<li><a href="dukechatbot/utility/Deadline.html" title="class in dukechatbot.utility">Deadline</a></li>
<li><a href="dukechatbot/duke/Duke.html" title="class in dukechatbot.duke">Duke</a></li>
<li><a href="dukechatbot/dukeexception/DukeException.html" title="class in dukechatbot.dukeexception">DukeException</a></li>
<li><a href="dukechatbot/utility/Event.html" title="class in dukechatbot.utility">Event</a></li>
<li><a href="dukechatbot/utility/EventTest.html" title="class in dukechatbot.utility">EventTest</a></li>
<li><a href="dukechatbot/utility/Parser.html" title="class in dukechatbot.utility">Parser</a></li>
<li><a href="dukechatbot/utility/Storage.html" title="class in dukechatbot.utility">Storage</a></li>
<li><a href="dukechatbot/utility/Task.html" title="class in dukechatbot.utility">Task</a></li>
<li><a href="dukechatbot/utility/TaskList.html" title="class in dukechatbot.utility">TaskList</a></li>
<li><a href="dukechatbot/utility/Todo.html" title="class in dukechatbot.utility">Todo</a></li>
<li><a href="dukechatbot/utility/TodoTest.html" title="class in dukechatbot.utility">TodoTest</a></li>
<li><a href="dukechatbot/utility/Ui.html" title="class in dukechatbot.utility">Ui</a></li>
</ul>
</main>
</body>
</html>
Loading