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

[Shawn Tan Jing Kai] iP #486

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
667d38b
edited Duke.java. completed Level-1
shawnkai Aug 17, 2022
d1f1407
edited duke.java and completed level 2
shawnkai Aug 17, 2022
4e2d26f
added task.java
shawnkai Aug 18, 2022
5efa3fb
edited duke.java
shawnkai Aug 18, 2022
534362c
edited task.java and added 3 subclasses
shawnkai Aug 18, 2022
0d84d4e
edited duke.java
shawnkai Aug 18, 2022
f95c304
added DukeException.java and edited Duke.java
shawnkai Aug 18, 2022
8fe5496
edited Duke.java
shawnkai Aug 18, 2022
3792d6f
removed emoji from duke.java
shawnkai Aug 26, 2022
86a4055
resolved A-TextUiTesting issue
shawnkai Aug 26, 2022
223aeab
edits made to several files for level 7
shawnkai Aug 29, 2022
407f442
edited deadline.txt and event.txt so they can recognise dates
shawnkai Aug 29, 2022
0bcc053
Merge branch 'branch-Level-7'
shawnkai Aug 29, 2022
bbbbfdf
Merge branch 'branch-Level-8'
shawnkai Aug 29, 2022
3f20ab1
Extracted code from Duke.java to form classes: Parser, Storage, TaskL…
shawnkai Aug 29, 2022
68232ef
put all classes in one package duke
shawnkai Aug 29, 2022
0f48dff
Merge remote-tracking branch 'add-gradle-support/add-gradle-support'
shawnkai Aug 31, 2022
d628eb8
created test class for event and todo classes
shawnkai Aug 31, 2022
bfcd7cf
changes made to input.txt
shawnkai Aug 31, 2022
4b5dffc
added data.txt file to gitignore
shawnkai Aug 31, 2022
869c1fc
added javadocs
shawnkai Sep 1, 2022
1fd5ddd
Tweak code to comply with coding standards
shawnkai Sep 1, 2022
5051a59
edited parser.java and tasklist.java to include the "find" command
shawnkai Sep 1, 2022
c45b8a6
Merge branch 'A-JavaDoc'
shawnkai Sep 1, 2022
65589f2
Merge branch 'branch-A-CodingStandard'
shawnkai Sep 1, 2022
6174930
Merge branch 'branch-Level-9'
shawnkai Sep 1, 2022
240430a
add dialogbox.java and launcher.java and 2 images for gui, edit duke.…
shawnkai Sep 9, 2022
aaedfc2
Add assertions to code
shawnkai Sep 11, 2022
49ec229
refactor code and improve code quality
shawnkai Sep 11, 2022
6d2b975
Merge pull request #3 from shawnkai/branch-A-Assertions
shawnkai Sep 12, 2022
9e6b2c5
Merge branch 'master' of https://github.com/shawnkai/ip
shawnkai Sep 12, 2022
bcbc1b5
Merge branch 'branch-A-CodeQuality'
shawnkai Sep 12, 2022
d408b4d
Add Reminder Function
shawnkai Sep 12, 2022
96d8c8f
Merge branch 'branch-AddAnExtension'
shawnkai Sep 12, 2022
b9cd54c
Update Readme and add screenshot of GUI
shawnkai Sep 19, 2022
4e9d991
edit user guide
shawnkai Sep 19, 2022
15d7db1
create new jar file and edit file name from Launcher.java to Main.java
shawnkai Sep 19, 2022
ab144a6
edit ui.png
shawnkai Sep 29, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ bin/

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

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 = "duke.Main"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

run{
standardInput = System.in
}
45 changes: 29 additions & 16 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,42 @@
# User Guide

## Features
## Duke

### Feature-ABC
> “Your mind is for having ideas, not holding them.” – David Allen

Description of the feature.
### Overview
Duke frees your mind of having to remember things you need to do. It's,

### Feature-XYZ
- text-based
- easy to learn
- ~~FAST~~ ***SUPER FAST to use***

Description of the feature.
All you need to do is,

## Usage
1. download it from [here](https://github.com/shawnkai/ip).
2. double-click it.
3. add your tasks.
4. let it manage your tasks for you :+1:
And it is FREE!

### `Keyword` - Describe action
### Features:

Describe the action and its outcome.
- [x] Managing tasks
- [x] Managing deadlines
- [x] Reminders ~~(coming soon)~~

Example of usage:

`keyword (optional arguments)`
### Usage

Expected outcome:
#### Commands

Description of the outcome.

```
expected output
```
- `todo DESCRIPTION`: Add todo task
- `deadline DESCRIPTION /by DEADLINE`: Add deadline task
- `event DESCRIPTION /at TIME`: Add event task
- `list`: List all tasks
- `mark INDEX`: Mark task as done
- `unmark INDEX`: Unmark task
- `bye`: Exit program
- `find KEYWORD`: Filter task by keyword
- `delete INDEX`: Delete task
- `reminder`: Gives a reminder for the upcoming deadlines and events for the coming week
Binary file added docs/Ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
183 changes: 183 additions & 0 deletions gradlew
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
#!/usr/bin/env sh

#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn () {
echo "$*"
}

die () {
echo
echo "$*"
echo
exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`

# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option

if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi

# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

exec "$JAVACMD" "$@"
Loading