diff --git a/.gitignore b/.gitignore index 823d175eb670..c8e31b0cdb8a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ lib/* *.log *.log.* *.csv -config.json +/config.json src/test/data/sandbox/ preferences.json .DS_Store diff --git a/README.adoc b/README.adoc index fa50028b99d0..270e525e6a03 100644 --- a/README.adoc +++ b/README.adoc @@ -1,39 +1,49 @@ -= Address Book (Level 4) += PlanWithEase ifdef::env-github,env-browser[:relfileprefix: docs/] -https://travis-ci.org/se-edu/addressbook-level4[image:https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master[Build Status]] -https://ci.appveyor.com/project/damithc/addressbook-level4[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]] -https://coveralls.io/github/se-edu/addressbook-level4?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master[Coverage Status]] -https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]] +https://travis-ci.org/CS2113-AY1819S2-T09-1/main[image:https://img.shields.io/travis/CS2113-AY1819S2-T09-1/main/master.svg?logo=travis-ci&logoColor=FFDC00&cacheSeconds=0[Travis CI Build Status]] +https://ci.appveyor.com/project/Creastery/main[image:https://img.shields.io/appveyor/ci/Creastery/main/master.svg?logo=appveyor&logoColor=39CCCC&cacheSeconds=0[AppVeyor CI Build Status]] +https://coveralls.io/github/CS2113-AY1819S2-T09-1/main?branch=master[image:https://img.shields.io/coveralls/github/CS2113-AY1819S2-T09-1/main.svg?logo=reverbnation&logoColor=FF851B&cacheSeconds=0[Coveralls Code Coverage Status]] +https://www.codacy.com/app/cs2113-ay1819s2-t09-1/main[image:https://img.shields.io/codacy/grade/fb54572137f043de9b9913f791b4017f.svg?logo=codacy&logoColor=white&cacheSeconds=0[Codacy Code Quality Status]] +https://app.netlify.com/sites/cs2113-ay1819s2-t09-1/deploys[image:https://img.shields.io/badge/dynamic/json.svg?url=https://api.netlify.com/api/v1/sites/cs2113-ay1819s2-t09-1.netlify.com/deploys&query=$%5B0%5D.state&label=deploy&color=blue&logo=netlify&cacheSeconds=0[Netlify Deploy Previews Status]] +link:https://github.com/cs2113-ay1819s2-t09-1/main/blob/master/LICENSE[image:https://img.shields.io/badge/license-MIT-blue.svg?logo=github&logoColor=white[MIT License]] ifdef::env-github[] -image::docs/images/Ui.png[width="600"] +image::docs/images/Ui.png[width="800"] endif::[] ifndef::env-github[] -image::images/Ui.png[width="600"] +image::images/Ui.png[width="970"] endif::[] -* This is a desktop Address Book application. 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. -* It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules. -* What's different from https://github.com/se-edu/addressbook-level3[level 3]: -** A more sophisticated GUI that includes a list panel and an in-built Browser. -** More test cases, including automated GUI testing. -** Support for _Build Automation_ using Gradle and for _Continuous Integration_ using Travis CI. +* PlanWithEase (PWE) is a degree planner desktop application. It has a GUI but most of the user +interactions happen +using a CLI +(Command Line Interface). +* PWE is designed to help students in National University of Singapore (NUS) Information Security freshmen in creating a + comprehensive degree plan according to the degree requirements. +* PWE is optimized for those who prefer using a CLI. The commands used to interact with PWE +are designed to be simple and intuitive, so even those who are unfamiliar with CLI can use PWE with ease. + +* PWE allows users to: +** plan their module quickly and more conveniently. +** automate checking of module pre-requisites to avoid module conflicts. _(coming soon)_ +** provide an informed decision so that the user are able to decide which module to take at which semester. == Site Map * <> * <> -* <> * <> * <> == Acknowledgements - +* Original source: https://github.com/se-edu/addressbook-level4[AddressBook +Level 4 project] created by https://github.com/se-edu/[SE-EDU initiative] * 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://github.com/TestFX/TestFX[TextFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/google/guava[Guava], https://github.com/junit-team/junit5[JUnit5] +* Libraries used: https://github.com/TestFX/TestFX[TestFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/junit-team/junit5[JUnit5] +* Modified icon from https://fontawesome.com[Font Awesome] +* Modified CSS from https://bitbucket.org/agix-material-fx/materialfx-material-design-for-javafx[MaterialFX - Material design for javafx] -== Licence : link:LICENSE[MIT] +== Licence : link:https://github.com/cs2113-ay1819s2-t09-1/main/blob/master/LICENSE[MIT] diff --git a/_reposense/config.json b/_reposense/config.json new file mode 100644 index 000000000000..be9eee124ecc --- /dev/null +++ b/_reposense/config.json @@ -0,0 +1,30 @@ +{ + "authors": + [ + { + "githubId": "truegitnovice", + "displayName": "AHN...GYU", + "authorNames": ["truegitnovice", "Ahn TaeGyu"] + }, + { + "githubId": "WendyBaiYunwei", + "displayName": "BAI...WEI", + "authorNames": ["WendyBaiYunwei", "Bai Yunwei"] + }, + { + "githubId": "lycjackie", + "displayName": "LEE...HOY", + "authorNames": ["lycjackie", "Jackie Lee"] + }, + { + "githubId": "Creastery", + "displayName": "NGO...LIN", + "authorNames": ["Creastery", "Ngo Wei Lin"] + }, + { + "githubId": "chyeo", + "displayName": "YEO...ONG", + "authorNames": ["chyeo", "CH YEO", "Yeo Cheng Hong"] + } + ] +} diff --git a/build.gradle b/build.gradle index 4f2949b6e774..4c94d1864cac 100644 --- a/build.gradle +++ b/build.gradle @@ -8,9 +8,9 @@ plugins { id 'java' id 'jacoco' id 'checkstyle' - id 'com.github.kt3k.coveralls' version '2.4.0' - id 'com.github.johnrengelman.shadow' version '2.0.3' - id 'org.asciidoctor.convert' version '1.5.6' + id 'com.github.kt3k.coveralls' version '2.8.2' + id 'com.github.johnrengelman.shadow' version '4.0.4' + id 'org.asciidoctor.convert' version '1.5.8' id 'application' } @@ -28,7 +28,7 @@ if (JavaVersion.current() == JavaVersion.VERSION_1_10 } // Specifies the entry point of the application -mainClassName = 'seedu.address.MainApp' +mainClassName = 'pwe.planner.MainApp' sourceCompatibility = JavaVersion.VERSION_1_9 targetCompatibility = JavaVersion.VERSION_1_9 @@ -55,12 +55,11 @@ test { } dependencies { - String testFxVersion = '4.0.12-alpha' + String testFxVersion = '4.0.15-alpha' String jUnitVersion = '5.1.0' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.0' - implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.7.4' - implementation group: 'com.google.guava', name: 'guava', version: '19.0' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8' + implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.9.8' testImplementation group: 'junit', name: 'junit', version: '4.12' testImplementation group: 'org.testfx', name: 'testfx-core', version: testFxVersion, { @@ -70,15 +69,13 @@ dependencies { testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: jUnitVersion - testRuntimeOnly group: 'org.testfx', name: 'testfx-internal-java9', version: testFxVersion testRuntimeOnly group: 'org.testfx', name: 'openjfx-monocle', version: 'jdk-9+181' testRuntimeOnly group:'org.junit.vintage', name:'junit-vintage-engine', version: jUnitVersion testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: jUnitVersion } shadowJar { - archiveName = 'addressbook.jar' - + archiveName = 'PWE.jar' destinationDir = file("${buildDir}/jar/") } @@ -152,16 +149,16 @@ test { } if (runNonGuiTests) { - test.include 'seedu/address/**' + test.include 'pwe/planner/**' } if (runGuiTests) { test.include 'systemtests/**' - test.include 'seedu/address/ui/**' + test.include 'pwe/planner/ui/**' } if (!runGuiTests) { - test.exclude 'seedu/address/ui/**' + test.exclude 'pwe/planner/ui/**' } } } @@ -188,6 +185,8 @@ asciidoctor { sourceDir 'docs' outputDir "${buildDir}/docs" + dependsOn('copyStylesheets') + options = [ template_dirs: [file("${sourceDir}/templates")], ] @@ -202,9 +201,8 @@ asciidoctor { idprefix: '', // for compatibility with GitHub preview idseparator: '-', 'site-root': "${sourceDir}", // must be the same as sourceDir, do not modify - 'site-name': 'AddressBook-Level4', - 'site-githuburl': 'https://github.com/se-edu/addressbook-level4', - 'site-seedu': true, // delete this line if your project is not a fork (not a SE-EDU project) + 'site-name': 'PlanWithEase', + 'site-githuburl': 'https://github.com/cs2113-ay1819s2-t09-1/main', ] options['template_dirs'].each { @@ -219,9 +217,10 @@ task copyStylesheets(type: Copy) { from "${asciidoctor.sourceDir}/stylesheets" into "${asciidoctor.outputDir}/html5/stylesheets" } -asciidoctor.dependsOn copyStylesheets task deployOfflineDocs(type: Copy) { + dependsOn('asciidoctor') + into('src/main/resources/docs') from ("${asciidoctor.outputDir}/html5") { @@ -231,7 +230,22 @@ task deployOfflineDocs(type: Copy) { } } -deployOfflineDocs.dependsOn asciidoctor processResources.dependsOn deployOfflineDocs -defaultTasks 'clean', 'headless', 'allTests', 'coverage', 'asciidoctor' +task buildJar(type: GradleBuild) { + tasks = ['clean', 'deployOfflineDocs', 'shadowJar'] +} + +compileJava { + options.warnings = true + options.deprecation = true + options.compilerArgs += [ "-Xlint:cast,deprecation,divzero,rawtypes,unchecked" ] +} + +compileTestJava { + options.warnings = true + options.deprecation = true + options.compilerArgs += [ "-Xlint:cast,deprecation,divzero,rawtypes,unchecked" ] +} + +defaultTasks 'clean', 'checkstyleMain', 'checkstyleTest', 'headless', 'allTests', 'coverage', 'asciidoctor' diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index a9671a144efd..c970943d6b40 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -1,7 +1,7 @@ + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" + "https://checkstyle.org/dtds/configuration_1_3.dtd"> + + + + +