Skip to content

[Zoebelle Pang] iP #470

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

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
55f9f9f
docs/README.md: Tweak document template
Jan 7, 2024
f837ddb
Add Gradle support
May 24, 2020
a6f7324
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
4abe831
original
zoebelle-pang Feb 1, 2024
9fd519f
Merge branch 'nus-cs2103-AY2324S2:master' into master
zoebelle-pang Feb 1, 2024
4f9805f
Level-0
zoebelle-pang Feb 1, 2024
f76e20a
Level-1
zoebelle-pang Feb 1, 2024
23f0151
Level-2
zoebelle-pang Feb 1, 2024
bf00c0d
Level-3
zoebelle-pang Feb 1, 2024
d42cf5f
Level-4
zoebelle-pang Feb 1, 2024
ce111a4
Level-5
zoebelle-pang Feb 1, 2024
b957fc9
Revert "Level-5"
zoebelle-pang Feb 1, 2024
fda81d8
A-TextUiTesting
zoebelle-pang Feb 1, 2024
c3c4b8d
Level-5
zoebelle-pang Feb 2, 2024
f61db8c
Level-6
zoebelle-pang Feb 2, 2024
1dda06a
Level-7
zoebelle-pang Feb 9, 2024
4a85b91
Merge branch 'branch-Level-7'
zoebelle-pang Feb 9, 2024
c0bd29b
Level 8
zoebelle-pang Feb 22, 2024
4e3d1c4
level 8.1
zoebelle-pang Feb 22, 2024
29f9d66
level 8.2
zoebelle-pang Feb 22, 2024
94df8a9
A-MoreOOP
zoebelle-pang Feb 22, 2024
cbf8106
Revert "A-MoreOOP"
zoebelle-pang Feb 22, 2024
1f309a6
Revert "level 8.2"
zoebelle-pang Feb 22, 2024
235599e
remove class file
zoebelle-pang Feb 22, 2024
341f3ef
level 8.3
zoebelle-pang Feb 22, 2024
7286517
level 8.4
zoebelle-pang Feb 22, 2024
5be57a7
A-MoreOOP
zoebelle-pang Feb 22, 2024
b107abc
A-Packages
zoebelle-pang Feb 22, 2024
ee6642a
Merge branch 'add-gradle-support'
zoebelle-pang Feb 22, 2024
44bbf68
A-JUnit
zoebelle-pang Feb 22, 2024
6e2f711
A-JavaDoc
zoebelle-pang Feb 23, 2024
9ed10ba
A-JavaDoc all
zoebelle-pang Feb 23, 2024
db2313f
Revert "A-JavaDoc all"
zoebelle-pang Feb 23, 2024
84c0386
Revert "Revert "A-JavaDoc all""
zoebelle-pang Feb 23, 2024
020e951
A-CodingStandard
zoebelle-pang Feb 23, 2024
92432c2
Level-9 Add 'find' command
zoebelle-pang Feb 23, 2024
8aec68d
inc
zoebelle-pang Feb 23, 2024
dcf8f47
update package name
zoebelle-pang Feb 23, 2024
0aa73e2
Add GUI
zoebelle-pang Feb 23, 2024
eb9f02b
Implement GUI
zoebelle-pang Feb 25, 2024
a8afb71
fix conflict error
zoebelle-pang Feb 25, 2024
6f8b889
fix conflict error
zoebelle-pang Feb 25, 2024
7c3cbc2
update readme
zoebelle-pang Feb 25, 2024
3f29f12
Improve file open handling in Storage by introducing a fileIsOpen fla…
zoebelle-pang Feb 25, 2024
0512cb1
A-codeQuality
zoebelle-pang Feb 25, 2024
9e1104f
update
zoebelle-pang Feb 25, 2024
eef2934
edit listTask() to make spacing consistent
zoebelle-pang Feb 25, 2024
2360d62
Merge pull request #2 from zoebelle-pang/branch-A-Assertions
zoebelle-pang Feb 25, 2024
9871801
Revert "edit listTask() to make spacing consistent"
zoebelle-pang Feb 25, 2024
218b8cc
Merge pull request #3 from zoebelle-pang/branch-A-CodeQuality
zoebelle-pang Feb 25, 2024
fefb08a
BCD-Extension
zoebelle-pang Feb 25, 2024
337580b
Merge branch 'master' of https://github.com/zoebelle-pang/ip
zoebelle-pang Feb 25, 2024
555392f
A-UserGuide
zoebelle-pang Feb 26, 2024
1900564
final changes
zoebelle-pang Feb 26, 2024
5163f4a
DukeException
zoebelle-pang Feb 29, 2024
0840c85
minor indentation changes
zoebelle-pang Feb 29, 2024
8330255
Revert "minor indentation changes"
zoebelle-pang Feb 29, 2024
59064ef
Fix Jar file
zoebelle-pang Mar 14, 2024
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
57 changes: 57 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.1.2'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'

String javaFxVersion = '17.0.7'

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 {
mainClass.set("bentley.Launcher")
}

shadowJar {
archiveBaseName = "bentley"
//archiveClassifier = null
//dependsOn("distZip", "distTar")
}

run{
standardInput = System.in
}
1 change: 1 addition & 0 deletions data/duke.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1. [ ] (T) hw
66 changes: 50 additions & 16 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
# User Guide
# Bentley
## Overview

## Features
The Bentley Task Management Application is a simple and efficient task management tool designed to help users organize their tasks effortlessly.Whether you're keeping track of your to-dos, deadlines, or events, Bentley has you covered.
> "Your mind is for having ideas, not holding them." – David Allen (source)

### Feature-ABC
Bentley's task management chat frees your mind of having to remember things you need to do. It's,

Description of the feature.
- text-based
- easy to learn
- *SUPER* FAST to use

### Feature-XYZ
All you need to do is,

Description of the feature.
1. [Download it from here.](https://github.com/zoebelle-pang/ip)
2. Double-click it.
3. Add your tasks.
4. Let it manage your tasks for you 😉

## Usage
And it is FREE!

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

Describe the action and its outcome.
- [x] Managing tasks
- [ ] Managing deadlines
- [ ] Managing Events

Example of usage:
### Instructions:

`keyword (optional arguments)`
> 💡 Use clear and detailed task outlines to improve how you handle your tasks. It's easier to find jobs and keep things organised in Bentley when details are clear.

Expected outcome:
### 1. Create a To-Do Task
Command: `todo <description>`

Example: `todo homework`

**Output:**
`[ ] T homework`


### 2. Create a Deadline Task with date
Command: `deadline <description> /by YYYY-MM-DD`

Example: `deadline return books /by 2025-11-10`

**Output:**
`[ ] (D) return books | Nov 10 2025`


### 3. Create a Event task with date and time
Command: `event <description> /from YYYY-MM-DD HHmm /to YYYY-MM-DD HHmm`

Example: `event project meeting /from 2025-11-10 1800 /to 2025-11-10 1900`

**Output:**
`[ ] (E) project meeting | From Nov 10 2025 6:00pm to Nov 10 2025 7:00pm`

### Other features
1. list: Displays the list of tasks
2. mark/unmark: marks/unmark the specified task as done.
3. find: Displays tasks containing the specified keyword.

Description of the outcome.

```
expected output
```
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.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
248 changes: 248 additions & 0 deletions gradlew
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
#!/bin/sh

#
# Copyright © 2015-2021 the original 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 POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################

# Attempt to set APP_HOME

# Resolve links: $0 may be a link
app_path=$0

# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done

# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

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

warn () {
echo "$*"
} >&2

die () {
echo
echo "$*"
echo
exit 1
} >&2

# 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 ;; #(
MSYS* | 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
if ! command -v java >/dev/null 2>&1
then
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
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi

# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.

# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )

JAVACMD=$( cygpath --unix "$JAVACMD" )

# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi


# 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"'

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.

set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"

# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi

# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#

eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'

exec "$JAVACMD" "$@"
Loading