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

[Liu Han] ip #500

Open
wants to merge 49 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
9676077
Level 1
SweetPotato0213 Aug 18, 2022
0d9ef52
Level 2. Add, List
SweetPotato0213 Aug 18, 2022
5da01cb
Level 3. Mark as Done
SweetPotato0213 Aug 18, 2022
0de5e80
Level 4. ToDos, Events, Deadlines
SweetPotato0213 Aug 18, 2022
3eed790
A-TextUiTesting: Automated Text UI Testing
SweetPotato0213 Aug 18, 2022
dac7f8e
Level 5. Handle Errors
SweetPotato0213 Aug 18, 2022
880e4c0
Level 6. Delete
SweetPotato0213 Aug 18, 2022
2fe064a
A-Enums: Use Enums
SweetPotato0213 Aug 18, 2022
a553d00
Cosmetic changes to follow coding standards
SweetPotato0213 Aug 29, 2022
f5659ce
Level 2(v2)
SweetPotato0213 Aug 29, 2022
27413b8
Level 3(v2)
SweetPotato0213 Aug 29, 2022
ab182d3
Level 4(v2)
SweetPotato0213 Sep 5, 2022
a226e93
Test using the I/O redirection technique
SweetPotato0213 Sep 5, 2022
dbe31f4
Level 5(v2)
SweetPotato0213 Sep 6, 2022
ab2bbb2
Level 6(v2)
SweetPotato0213 Sep 6, 2022
d224115
Level 7.Save
SweetPotato0213 Sep 6, 2022
ece43a0
Level 8. Dates and Times
SweetPotato0213 Sep 6, 2022
eb63281
Level 7. Save
SweetPotato0213 Sep 6, 2022
0e48f38
Level 8. Date time
SweetPotato0213 Sep 6, 2022
e98b02e
Merge branch 'branch-Level-8'
SweetPotato0213 Sep 6, 2022
474467d
Level 7(v2)
SweetPotato0213 Sep 6, 2022
3f2cd52
Merge branch 'branch-Level-7'
SweetPotato0213 Sep 6, 2022
1f03af6
Use More OOP
SweetPotato0213 Sep 6, 2022
dd62132
Organize classes into a package
SweetPotato0213 Sep 6, 2022
82c1254
Merge branch 'add-gradle-support'
SweetPotato0213 Sep 6, 2022
fce0fb3
Use Gradle
SweetPotato0213 Sep 6, 2022
733de7f
Add JUnit Tests
SweetPotato0213 Sep 7, 2022
aea7a3a
Create a JAR file
SweetPotato0213 Sep 7, 2022
75e8974
Add JavaDoc Comments
SweetPotato0213 Sep 7, 2022
f96b9c0
Follow the coding standard
SweetPotato0213 Sep 7, 2022
0948713
Implement Find function
SweetPotato0213 Sep 7, 2022
66c9edc
Merge branch 'branch-A-CodingStandard'
SweetPotato0213 Sep 7, 2022
8a3b775
Merge branch 'branch-Level-9'
SweetPotato0213 Sep 7, 2022
c8a71d1
Cosmetic changes following coding standard
SweetPotato0213 Sep 7, 2022
4c5a763
javafx test
SweetPotato0213 Sep 12, 2022
82f3c2b
Added Main.java and fxml files
SweetPotato0213 Sep 12, 2022
f22bafd
Create MainWindow.java
SweetPotato0213 Sep 12, 2022
57cac3f
Added GUI
SweetPotato0213 Sep 18, 2022
64a62a0
Improve Code Quality
SweetPotato0213 Sep 19, 2022
3493580
Use Assertions
SweetPotato0213 Sep 19, 2022
6a2a08d
Improve the Javadoc statement for getStatus method
SweetPotato0213 Sep 19, 2022
068277a
Merge pull request #2 from SweetPotato0213/branch-A-CodeQuality
SweetPotato0213 Sep 19, 2022
16a3594
Merge pull request #3 from SweetPotato0213/branch-A-Assertions
SweetPotato0213 Sep 19, 2022
719d544
Add an extension Update
SweetPotato0213 Sep 19, 2022
20602c7
User Guide
SweetPotato0213 Sep 19, 2022
4faf015
Attempt to get the GUI work
SweetPotato0213 Oct 20, 2022
271d87c
CLI correction
SweetPotato0213 Oct 24, 2022
d8c698b
CLI update
SweetPotato0213 Oct 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
62 changes: 62 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'checkstyle'
}

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.Launcher"
}

checkstyle {
toolVersion = '10.2'
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
archiveVersion = "0.2"
}

run{
standardInput = System.in
}
40 changes: 32 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,52 @@

## Features

### Feature-ABC
### List

Description of the feature.
List the tasks

### Feature-XYZ
### Todo

Description of the feature.
Add one todo task into the task list

### Deadline

Add one deadline task with time into the task list

### Event

Add one event task with time into the task list

### Delete

Deletes one task at a specified index from the task list

### Find

Finds one task matching the key word

### Update

Modify one deadline or event task with an updated time

## Usage

### `Keyword` - Describe action
### `List` - List tasks

Describe the action and its outcome.

Example of usage:

`keyword (optional arguments)`
`List`

Expected outcome:

Description of the outcome.
A list of tasks

```
expected output
____________________________________________________________
There is no pending task for you.
1. [T][] Read books
2. [E][] Watch movies (at: 24 Dec 2022)
____________________________________________________________
```
5 changes: 5 additions & 0 deletions duke.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
T | 0 | read books
D | 1 | go home | 2022-11-24
D | 0 | return books | 2022-12-31
E | 0 | student life fair | 2022-08-14
E | 0 | halloween | 2022-10-31
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