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

[Rushagrid] Duke Increments #536

Open
wants to merge 47 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
65f72a8
Add support for Gradle workflow
j-lum Aug 6, 2019
0112efe
Add sample checkstyle configuration
j-lum Aug 12, 2019
cfd6da7
Change file mode on `gradle` to be executable
j-lum Aug 18, 2019
6e6ace1
Merge pull request #12 from j-lum/gradle+x
j-lum Aug 18, 2019
fbc2e85
Commit level1
Krit-K Aug 21, 2019
ca73428
Finish level-2
Krit-K Aug 22, 2019
84d245e
added Task and complete level-3
Krit-K Aug 22, 2019
c15dfc1
finish level 4
Krit-K Aug 22, 2019
411be71
added handling exceptions
Krit-K Aug 22, 2019
7209013
added delete function
Krit-K Aug 22, 2019
102862a
Finish Level-7
Krit-K Aug 29, 2019
f9f3527
Finish level-8
Krit-K Aug 29, 2019
43ff40f
Merge branch 'branch-Level-7'
Krit-K Aug 29, 2019
bbe2e9f
MoreOOP
Krit-K Aug 29, 2019
f1e79b8
A-JUnit
Krit-K Aug 29, 2019
6513b38
added Java Doc
Krit-K Aug 30, 2019
28e6bd1
Adhering to coding standards on all classes
Krit-K Aug 30, 2019
dbd9c3b
Added find function
Krit-K Aug 30, 2019
68e595a
Merge branch 'branch-A-JavaDoc' into branch-Level-9
Krit-K Sep 5, 2019
0c3790e
Merge branch 'branch-A-CodingStandard' into branch-Level-9
Krit-K Sep 5, 2019
f4bf590
fixed find function
Krit-K Sep 5, 2019
aa4775d
Merge branch 'gradle' of https://github.com/ArgVampir/duke
Krit-K Sep 5, 2019
a25e476
added gradle wrapper
Krit-K Sep 5, 2019
f7938fd
added test function
Krit-K Sep 5, 2019
421396a
finish level-10
Krit-K Sep 5, 2019
c6fac47
Add java docs and tidy up code
Krit-K Sep 12, 2019
ce5794e
added assertions
Krit-K Sep 12, 2019
f95aaac
Revert "added assertions"
Krit-K Sep 12, 2019
4dabcff
added event Sort function
Krit-K Sep 13, 2019
c719497
fixed minor bugs
Krit-K Sep 13, 2019
f6cace4
Added function and resolve bugs
Krit-K Sep 17, 2019
bbab4b8
added comments in assert
Krit-K Sep 17, 2019
71f02b7
Fix date and time issue
Krit-K Sep 19, 2019
7d9593c
Added all sort function for todo deadline and event. Fixed bugs with …
Krit-K Sep 19, 2019
e607727
Make the code more private and break down the Storage for cleaner code
Krit-K Sep 19, 2019
1af3b5f
Merge branch 'branch-A-Assertions'
Krit-K Sep 19, 2019
f2fc750
Merge branch 'branch-A-CodeQuality'
Krit-K Sep 19, 2019
99ed924
Merge branch 'branch-C-Sort'
Krit-K Sep 19, 2019
f75def9
Set theme jekyll-theme-architect
Krit-K Sep 30, 2019
5f630e2
Added a theme to the program and userguide
Krit-K Sep 30, 2019
9576a13
Merge branch 'master' of https://github.com/ArgVampir/duke
Krit-K Sep 30, 2019
f181298
indentation
Krit-K Sep 30, 2019
2b80f7a
added image
Krit-K Sep 30, 2019
8c6da0d
Adhere to coding style, add check file exist in storage, minor fixes …
Krit-K Sep 30, 2019
923b831
change slight layout on readme
Krit-K Sep 30, 2019
7ffa124
chang name
Krit-K Sep 30, 2019
e61a9d2
changed back to Ui.png
Krit-K Sep 30, 2019
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
53 changes: 53 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.1.0'
}

shadowJar {
archiveBaseName = "duke"
archiveVersion = "0.1.4"
archiveClassifier = null
archiveAppendix = null
}

checkstyle {
toolVersion = '8.23'
}

group 'seedu.duke' //need change here also or not
version '0.1.0'

repositories {
mavenCentral()
}

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter: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'
implementation group: 'org.openjfx', name: 'javafx-media', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-media', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-media', version: javaFxVersion, classifier: 'linux'
}

test {
useJUnitPlatform()
}

application {
// Change this to your main class.
mainClassName = "Launcher"
}
257 changes: 257 additions & 0 deletions config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--
Checkstyle configuration that checks the Google coding conventions from Google Java Style
that can be found at https://google.github.io/styleguide/javaguide.html
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
To completely disable a check, just comment it out or delete it from the file.
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
-->

<module name = "Checker">
<property name="charset" value="UTF-8"/>

<property name="severity" value="error"/>

<property name="fileExtensions" value="java, properties, xml"/>
<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/config_filefilters.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>

<module name="TreeWalker">
<module name="OuterTypeFilename"/>
<module name="IllegalTokenText">
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
<property name="format"
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
<property name="message"
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
</module>
<module name="AvoidEscapedUnicodeCharacters">
<property name="allowEscapesForControlCharacters" value="true"/>
<property name="allowByTailComment" value="true"/>
<property name="allowNonPrintableEscapes" value="true"/>
</module>
<module name="LineLength">
<property name="max" value="120"/>
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<module name="AvoidStarImport"/>
<module name="OneTopLevelClass"/>
<module name="NoLineWrap"/>
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>
<module name="NeedBraces"/>
<module name="LeftCurly"/>
<module name="RightCurly">
<property name="id" value="RightCurlySame"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
LITERAL_DO"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlyAlone"/>
<property name="option" value="alone"/>
<property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
INSTANCE_INIT"/>
</module>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="OneStatementPerLine"/>
<module name="MultipleVariableDeclarations"/>
<module name="ArrayTypeStyle"/>
<module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="UpperEll"/>
<module name="ModifierOrder"/>
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapDot"/>
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapComma"/>
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
<property name="id" value="SeparatorWrapEllipsis"/>
<property name="tokens" value="ELLIPSIS"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
<property name="id" value="SeparatorWrapArrayDeclarator"/>
<property name="tokens" value="ARRAY_DECLARATOR"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapMethodRef"/>
<property name="tokens" value="METHOD_REF"/>
<property name="option" value="nl"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
<message key="name.invalidPattern"
value="Package name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="TypeName">
<message key="name.invalidPattern"
value="Type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LambdaParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="CatchParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LocalVariableName">
<property name="tokens" value="VARIABLE_DEF"/>
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Method type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="InterfaceTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="NoFinalizer"/>
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="0"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="4"/>
</module>
<module name="AbbreviationAsWordInName">
<property name="ignoreFinal" value="false"/>
<property name="allowedAbbreviationLength" value="1"/>
</module>
<module name="OverloadMethodsDeclarationOrder"/>
<module name="VariableDeclarationUsageDistance"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceBefore">
<property name="tokens"
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="ParenPad"/>
<module name="OperatorWrap">
<property name="option" value="NL"/>
<property name="tokens"
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationMostCases"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationVariables"/>
<property name="tokens" value="VARIABLE_DEF"/>
<property name="allowSamelineMultipleAnnotations" value="true"/>
</module>
<module name="NonEmptyAtclauseDescription"/>
<module name="JavadocTagContinuationIndentation"/>
<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments"
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
</module>
<module name="JavadocParagraph"/>
<module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
<property name="target"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="JavadocMethod">
<property name="scope" value="public"/>
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingThrowsTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="allowThrowsTagsForSubclasses" value="true"/>
</module>
<module name="MissingJavadocMethod">
<property name="scope" value="public"/>
<property name="minLineCount" value="2"/>
<property name="allowedAnnotations" value="Override, Test"/>
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
<message key="name.invalidPattern"
value="Method name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="SingleLineJavadoc">
<property name="ignoreInlineTags" value="false"/>
</module>
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected"/>
</module>
<module name="CommentsIndentation"/>
</module>
</module>
5 changes: 5 additions & 0 deletions data/savedTasks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
D | 1 | submit | 11/10/2019 1500
T | 0 | finish work
T | 1 | make project
E | 0 | attend lec | 12/12/0012 1212
T | 1 | Learn python
67 changes: 57 additions & 10 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,67 @@
# User Guide

## Features
## Introduction
Welcome to Duke User Guide. This application allows user to manage their daily tasks via
**Command Line Interface (CLI)** and through a friendly **Graphical User Interface (GUI)**.
The application comes with the feature to add tasks, mark task as done and much more!

### Feature 1
Description of feature.
## How to get Started
1. Ensure your computer has `Java 11` version for compatibility to run the program. Otherwise, you can download it from
[here](https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html).
1. After download the latest release version of the `Duke.jar` [here](https://github.com/ArgVampir/duke/releases).
1. Open terminal and `cd` to the path of the downloaded jar. Execute the command `java -jar duke.jar`.

## Usage
## Features

### `Keyword` - Describe action
### 1. View all tasks: **`list`**
Type `list` to view the list

Describe action and its outcome.
### 2. Add a new task: **`todo`**, **`event`**, **`deadline`**

Example of usage:
#### There are 3 types of tasks you can add into Duke:
1. `todo` task - A to-do task that only need description
Type `todo <description>` to add todo task
2. `deadline` task - A deadline to meet which requires a description and datetime.
Type `deadline <description> /by <date & time>` to add deadline task
3. `event` task - An event requires the description and datetime
Type `event <description> /at <date & time>` to event task

**Examples:**
- `todo borrow book`
- `deadline Assignment#2 /by 23/11/2019 2359`
- `event Career Fair /at 15/3/2020 1800`

`keyword (optional arguments)`
### 3. Find task using a keyword: **`find`**
Type `find <keyword>` to find task related to keyword

Expected outcome:
**Examples**
1. `find homework`
2. `find art exhibition`

`outcome`
### 4. Mark task as done: **`done`**
Type `done <index of task on list>`to mark particular task as finish


### 5. Delete task: **`delete`**
Type `delete <index of task on list>` to delete particular task from the task list


### 6. Sort the tasks: **`sort`**

#### There are 3 types of sorts:

1. `sort todo` sorts the task list displaying the todo first

2. `sort deadline` sort the task list displaying the deadline first

3. `sort event` sort the task list displaying the event first


### 7. Farewell to Duke: **`bye`**
type `bye` to make a farewell


## Additional Notes

- Keep in mind that the commands are **case-sensitive**
- Date format needs to be follow strictly
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.
1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-architect
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
Loading