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

[AY1920S1-CS2113-F14-4] SpinBox #42

Open
wants to merge 149 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
78054bb
Port over Phase 1 codebase
rssujay Sep 12, 2019
1406977
Merge pull request #1 from rssujay/original
rssujay Sep 12, 2019
706dd7f
Add post-port consistency changes
rssujay Sep 12, 2019
3c29ddc
Merge pull request #3 from rssujay/code-port-consistency
TCK1997 Sep 13, 2019
807304a
Add Travis CI
rssujay Sep 13, 2019
8df83a3
Merge pull request #4 from rssujay/travis-ci
ttippinyu Sep 13, 2019
cab57a8
Update build.gradle product version (#5)
rssujay Sep 16, 2019
97ddfbe
Add checkStyle reminder for 2113T styling (#6)
rssujay Sep 16, 2019
19c87c6
Retitle jar filename (#7)
rssujay Sep 16, 2019
9825c6a
Fix missing new directory during setup (#8)
rssujay Sep 16, 2019
35d3d96
Add library natty (#9)
TCK1997 Sep 17, 2019
937776c
Update storage unit tests and maintenance (#11)
rssujay Sep 18, 2019
c177612
Add FixedDuration Tasks (#12)
lackmoo Sep 18, 2019
e473f35
Fix bug when done or delete input has no index (#14)
ttippinyu Sep 18, 2019
115a06d
Add B-Reminders and fix bugs (#16)
rssujay Sep 18, 2019
cc09435
Add B-DoAfterTasks (#15)
lackmoo Sep 18, 2019
f919659
Implement B-DoWithinPeriodTasks (#19)
ttippinyu Sep 19, 2019
3ea8ccd
Implement B-ViewSchedules (#18)
ttippinyu Sep 19, 2019
d9428d1
Implement B-RecurringTasks (#20)
rssujay Sep 19, 2019
9d86df4
Add AboutUs.adoc and individual images
Sep 19, 2019
561d5b5
Add AboutUs.adoc and individual images (#22)
lackmoo Sep 19, 2019
2086c6b
Implement B-TentativeScheduling (#21)
ttippinyu Sep 19, 2019
0dfd587
Implement B-Snooze (#10)
TCK1997 Sep 19, 2019
aa3b236
Merge remote-tracking branch 'upstream/master'
Sep 19, 2019
7c07654
Update README.md
Sep 19, 2019
1e36b33
Edit README.md
Sep 19, 2019
9ff3ec0
Update README.md
Sep 19, 2019
85acbfc
Update README.md
Sep 19, 2019
d4256f5
Add README.adoc
Sep 19, 2019
2d8d434
Update README.md
Sep 19, 2019
5dc72fe
Update README.adoc
Sep 19, 2019
4ff8e53
Update README.md (#32)
lackmoo Sep 19, 2019
b342b26
Merge remote-tracking branch 'upstream/master'
Sep 19, 2019
9af714a
Implement B-DetectAnomalies (#33)
TCK1997 Sep 19, 2019
524f25d
Implement B-FindFreeTimes (#34)
TCK1997 Sep 19, 2019
4a2adbc
Merge remote-tracking branch 'upstream/master'
Sep 20, 2019
0edc2e4
Add file tracking feature (#62)
ttippinyu Oct 2, 2019
6b5efaf
Merge remote-tracking branch 'upstream/master'
Oct 2, 2019
12d570e
Refactor tasks (#63)
rssujay Oct 2, 2019
98076f4
Implement delete multiple tasks feature (#64)
lackmoo Oct 2, 2019
a5694ac
Merge remote-tracking branch 'upstream/master'
Oct 2, 2019
c1833d4
Add Ui.png
Oct 3, 2019
8707b30
Edit README
Oct 3, 2019
d8248b5
Resize individual images
Oct 3, 2019
c266f60
Resize individual images
Oct 3, 2019
7228947
Include Ui mock-up and resize individual images (#65)
lackmoo Oct 3, 2019
e394a55
Added JUnit tests for DateTime and Storage (#66)
TCK1997 Oct 3, 2019
fc036d1
Implement Item & GradedComponent classes (#68)
rssujay Oct 10, 2019
3c5ad29
Merge remote-tracking branch 'upstream/master'
Oct 10, 2019
0e4bb1a
Implement multiple feature to delete multiple or done multiple tasks
Oct 10, 2019
df360f7
Merge pull request #69 from lackmoo/Multiple
ttippinyu Oct 10, 2019
9ff135e
Implement List Classes (#70)
ttippinyu Oct 10, 2019
3d141ea
Refactor all Date parsing into DateTime (#71)
TCK1997 Oct 10, 2019
411a71b
Add a basic module class (#73)
ttippinyu Oct 13, 2019
c1a60b1
Refactor to SpinBox (#75)
ttippinyu Oct 14, 2019
19ba210
Implement CommandBuilder Feature within Parser (#76)
lackmoo Oct 15, 2019
ddc5f94
Edit items/task according to architecture (#81)
TCK1997 Oct 15, 2019
04bfee3
Update command builder (#83)
lackmoo Oct 15, 2019
fc28c8e
Update module class (#85)
ttippinyu Oct 15, 2019
a7606b2
Move Parser into SpinBox (#86)
ttippinyu Oct 15, 2019
ed15b02
Implement hierarchy-based storage (#87)
rssujay Oct 16, 2019
1bd176c
Implement notepad feature for modules (#88)
rssujay Oct 16, 2019
b77a26e
Add minimal support for module addition (#89)
rssujay Oct 16, 2019
420cc60
Call sort method in add, replace, and mark (#91)
ttippinyu Oct 17, 2019
8099366
Enhance AddCommand for Files (#90)
ttippinyu Oct 17, 2019
2cccb7a
View lists when on tabs page (#92)
ttippinyu Oct 17, 2019
5483a1e
Enhance view command (#93)
ttippinyu Oct 17, 2019
9eaf845
Remove command for files (#94)
ttippinyu Oct 17, 2019
c6b4a8d
Notepad commands (#95)
rssujay Oct 17, 2019
3badf19
Add Task Commands into Add Command (#97)
lackmoo Oct 17, 2019
f0e1aa1
Mark file command (#96)
ttippinyu Oct 17, 2019
0c956cc
Update .travis.yml (#101)
rssujay Oct 17, 2019
37afeb6
Implement Calendar (#98)
TCK1997 Oct 17, 2019
3be7d5a
Implement remove-multiple command, mark command for tasks and fix bug…
lackmoo Oct 18, 2019
92b7dfe
Fix duplication bug (#105)
rssujay Oct 18, 2019
40214e1
Update version and deprecated api call (#104)
rssujay Oct 18, 2019
28dd514
Fix typos (#106)
lackmoo Oct 18, 2019
0816b8a
Update parser (#111)
ttippinyu Oct 19, 2019
a0164a7
Update parser and commands (#115)
ttippinyu Oct 19, 2019
3213a4d
Implement Help Command (#116)
lackmoo Oct 20, 2019
a67df08
Add initial GUI layout and navigability (#118)
TCK1997 Oct 22, 2019
c72d7e3
Add more GUI functionality (#119)
TCK1997 Oct 23, 2019
be2e643
Change Mark to Update (#121)
ttippinyu Oct 23, 2019
7edbae3
Implement different event type tasks and fix bug (#124)
lackmoo Oct 23, 2019
cef4a5b
Implement Find command (#123)
ttippinyu Oct 24, 2019
75d4ab2
Make module code case-insensitive (#127)
ttippinyu Oct 24, 2019
7cfeb5e
Implement UpdateMultiple Command (#128)
lackmoo Oct 24, 2019
96d95a7
Add functional GUI (#129)
rssujay Oct 24, 2019
d50afce
Implement SetName Command (#130)
lackmoo Oct 24, 2019
a7a0b97
Implement interface for containers w/ Storage (#136)
rssujay Oct 25, 2019
0e76391
Implement set date command (#137)
lackmoo Oct 27, 2019
cf56698
Restructure tests (#138)
rssujay Oct 30, 2019
1ac6e8c
Reorganize commands (#139)
ttippinyu Oct 31, 2019
8653705
Implement export to text framework (#140)
rssujay Oct 31, 2019
84a689d
Write integration test for parser & view command (#141)
ttippinyu Oct 31, 2019
34dcb08
Implement graded component commands and GUI representation (#142)
rssujay Oct 31, 2019
19e090e
Update Ui.png (#143)
lackmoo Oct 31, 2019
4863adc
Fix Task Update in Gui (#176)
lackmoo Nov 6, 2019
2cc4a04
Add line numbers and header to notes (#177)
rssujay Nov 6, 2019
b8da558
Attempt add coverall integration (#178)
rssujay Nov 6, 2019
040233c
Add storable interface and cleanup (#179)
rssujay Nov 7, 2019
7c0adff
Add more test coverage to notepad (#180)
rssujay Nov 7, 2019
a310746
Implement cross-platform support for JAR files (#181)
lackmoo Nov 7, 2019
1124b1e
Add Calendar view for month (#182)
TCK1997 Nov 7, 2019
775c7c9
Update gui tasks display (#183)
lackmoo Nov 7, 2019
e5d0d5e
Command integration test (#185)
lackmoo Nov 7, 2019
78012db
Modify Command integration tests (#186)
lackmoo Nov 7, 2019
556bcee
Add File list integration test (#188)
ttippinyu Nov 7, 2019
1028c31
Task list integration test (#190)
ttippinyu Nov 7, 2019
7b679e3
File list integration test (#192)
ttippinyu Nov 7, 2019
6256486
Modify Parser Test and Create Task Tests (#191)
lackmoo Nov 8, 2019
e34d5f4
Implement Remove Modules Command (#194)
lackmoo Nov 8, 2019
0326b63
Update GUI to include index for files and grades view (#195)
lackmoo Nov 8, 2019
4024445
Fix GUI bugs and update tests (#196)
TCK1997 Nov 8, 2019
ebd4f3e
Change Update Command Format (#200)
lackmoo Nov 8, 2019
7307c81
Update remove modules command (#201)
lackmoo Nov 8, 2019
b032da3
Implement export all deadlines (#202)
rssujay Nov 8, 2019
9c998cf
Fix popup blocking input box (#203)
rssujay Nov 9, 2019
b27d2b1
Add Exception for Schedulable tasks (#204)
TCK1997 Nov 9, 2019
3181af9
Add module code to calendar and main (#206)
TCK1997 Nov 9, 2019
9263fc3
Add command to populate sample data (#205)
rssujay Nov 9, 2019
0e2b7a5
Add ExamView to Main (#208)
TCK1997 Nov 9, 2019
b4d7dde
Implement Cross Platform Support for SpinBox (#207)
lackmoo Nov 9, 2019
31e3727
Add Exception Handling for Schedulable tasks (#209)
TCK1997 Nov 9, 2019
19a37e4
Add assertations and fortify GUI (#210)
rssujay Nov 9, 2019
113f17d
Propagate corrupted data GUI warning (#211)
rssujay Nov 9, 2019
668b362
Edit Test Module Name and Add Integration Tests (#212)
lackmoo Nov 9, 2019
7dd3eb7
Incorporate logging (#213)
rssujay Nov 10, 2019
6f55057
Extract out filehandlers (#215)
rssujay Nov 10, 2019
974d6c2
Refactor Parser (#214)
lackmoo Nov 10, 2019
b49f9bf
Add Exception handling to DateTime (#216)
TCK1997 Nov 10, 2019
34166c7
Refactor List Classes (#218)
ttippinyu Nov 10, 2019
e06a30c
Add Integration Tests for Help Command and Help List (#217)
lackmoo Nov 10, 2019
2e49dc4
Update GUI for Main Page (#219)
lackmoo Nov 10, 2019
0c61b6b
Refactor view command (#220)
ttippinyu Nov 10, 2019
d337d24
Improve Calendar GUI and view command (#221)
TCK1997 Nov 10, 2019
0270922
Rewrite javaDocs (#222)
ttippinyu Nov 10, 2019
aa5f28a
Extend find command to graded components (#223)
ttippinyu Nov 10, 2019
43243e5
Fix Find command whitespace bug (#227)
ttippinyu Nov 11, 2019
3ba54fb
Refactor Find Command (#228)
ttippinyu Nov 11, 2019
484a15a
Update release filename (#229)
rssujay Nov 11, 2019
cfdfa6e
Refactor Test Codes and Set Date (#230)
lackmoo Nov 11, 2019
f441729
Typo (#231)
ttippinyu Nov 11, 2019
b4fe444
View calendar refactor (#232)
ttippinyu Nov 11, 2019
703d17e
Update Documentation (#233)
lackmoo Nov 11, 2019
06442d4
Update Documentation (#234)
lackmoo Nov 11, 2019
cb2aef6
Update README.adoc
rssujay Nov 11, 2019
5a2b010
Update Documentation (#235)
lackmoo Nov 11, 2019
e6867a2
Final Update (#236)
lackmoo Nov 11, 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
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ src/main/resources/docs/
.DS_Store
*.iml
bin/

#My additions
/data/*.txt
/SpinBoxData/*
!placeholder.txt
/text-ui-test/*.txt
8 changes: 8 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
language: java
jdk: openjdk11

before_install:
- chmod +x gradlew

after_success:
- ./gradlew coverage coveralls
32 changes: 32 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
= SpinBox
ifdef::env-github,env-browser[:relfileprefix: docs/]

https://travis-ci.org/AY1920S1-CS2113T-F14-4/main[image:https://travis-ci.org/AY1920S1-CS2113T-F14-4/main.svg?branch=master[Build Status]]
https://coveralls.io/github/AY1920S1-CS2113T-F14-4/main?branch=master[image:https://coveralls.io/repos/github/AY1920S1-CS2113T-F14-4/main/badge.svg?branch=master[Coverage Status]]

ifdef::env-github[]
image::docs/images/Ui.png[width="600"]
endif::[]

ifndef::env-github[]
image::images/Ui.png[width="600"]
endif::[]

* This is a desktop application. It is targetted at NUS students who would like a helping hand in managing a busy school life -- from handling deadlines and keeping track of deliverables and important dates, to monitoring module updates and viewing grades breakdown for every module.
* It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).
* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language.


== Site Map

* https://github.com/AY1920S1-CS2113T-F14-4/main/blob/master/docs/UserGuide.pdf[User Guide]
* https://github.com/AY1920S1-CS2113T-F14-4/main/blob/master/docs/DeveloperGuide.pdf[Developer Guide]
* <<AboutUs#, About Us>>

== Acknowledgements

* Some parts of this sample application were inspired by the excellent http://code.makery.ch/library/javafx-8-tutorial/[Java FX tutorial] by
_Marco Jakob_.
* Libraries used: https://openjfx.io/[JavaFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/junit-team/junit5[JUnit5]

== Licence : link:LICENSE[MIT]
42 changes: 6 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,9 @@
# Setting up
# SpinBox

**Prerequisites**
[![Build Status](https://travis-ci.org/AY1920S1-CS2113T-F14-4/main.svg?branch=master)](https://travis-ci.org/AY1920S1-CS2113T-F14-4/main)

* JDK 11
* Recommended: IntelliJ IDE
* Fork this repo to your GitHub account and clone the fork to your computer
![](docs/images/Ui.png)

**Importing the project into IntelliJ**

1. Open IntelliJ (if you are not in the welcome screen, click `File` > `Close Project` to close the existing project dialog first).
1. Set up the correct JDK version.
* Click `Configure` > `Structure for new Projects` (in older versions of Intellij:`Configure` > `Project Defaults` > `Project Structure`).
* If JDK 11 is listed in the drop down, select it. If it is not, click `New...` and select the directory where you installed JDK 11.
* Click `OK`.
1. Click `Import Project`.
1. Locate the project directory and click `OK`.
1. Select `Create project from existing sources` and click `Next`.
1. Rename the project if you want. Click `Next`.
1. Ensure that your src folder is checked. Keep clicking `Next`.
1. Click `Finish`.

# Tutorials

Duke Increment | Tutorial
---------------|---------------
`A-Gradle` | [Gradle Tutorial](tutorials/gradleTutorial.md)
`A-TextUiTesting` | [Text UI Testing Tutorial](tutorials/textUiTestingTutorial.md)
`Level-10` | JavaFX tutorials:<br>→ [Part 1: Introduction to JavaFX][fx1]<br>→ [Part 2: Creating a GUI for Duke][fx2]<br>→ [Part 3: Interacting with the user][fx3]<br>→ [Part 4: Introduction to FXML][fx4]

[fx1]: <tutorials/javaFxTutorialPart1.md>
[fx2]: <tutorials/javaFxTutorialPart2.md>
[fx3]: <tutorials/javaFxTutorialPart3.md>
[fx4]: <tutorials/javaFxTutorialPart4.md>

# Feedback, Bug Reports

* If you have feedback or bug reports, please post in [se-edu/duke issue tracker](https://github.com/se-edu/duke/issues).
* We welcome pull requests too.
* This is a desktop application. It is targetted at NUS students who would like a helping hand in managing a busy school life -- from handling deadlines and keeping track of deliverables and important dates, to monitoring module updates and viewing grades breakdown for every module.
* It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).
* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language.
89 changes: 89 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'jacoco'
id 'com.github.kt3k.coveralls' version '2.8.4'
}

checkstyle {
toolVersion = '8.23'
}

shadowJar {
archiveBaseName = "final"
archiveVersion = "v1.4"
archiveClassifier = null
archiveAppendix = null
}

jacocoTestReport {
reports {
xml.enabled = true
html.enabled = true
}
}

task coverage(type: JacocoReport) {
sourceDirectories.from files(sourceSets.main.allSource.srcDirs)
classDirectories.from files(sourceSets.main.output)
executionData.from files(jacocoTestReport.executionData)
afterEvaluate {
classDirectories.from files(classDirectories.files.collect {
fileTree(dir: it, exclude: ['**/*.jar'])
})
}
reports {
html.enabled = true
xml.enabled = true
}
}

coveralls {
sourceDirs = sourceSets.main.allSource.srcDirs.absolutePath
jacocoReportPath = "${buildDir}/reports/jacoco/coverage/coverage.xml"
}

tasks.coveralls {
dependsOn coverage
}

group 'seedu.spinbox'
version '1.1.0'

repositories {
mavenCentral()
}

application {
// Change this to your main class.
mainClassName = "spinbox.gui.Launcher"
}

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.5.0'
compile group: 'com.joestelmach', name: 'natty', version: '0.6'

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()
}

run {
standardInput = System.in
}
Loading