diff --git a/AY2324S1-CS2113-T17-3_tp_master/authorship.json b/AY2324S1-CS2113-T17-3_tp_master/authorship.json index 8c5452d..6fe5b15 100644 --- a/AY2324S1-CS2113-T17-3_tp_master/authorship.json +++ b/AY2324S1-CS2113-T17-3_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" mainClass.set(\"seedu.stocker.Stocker\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" archiveBaseName.set(\"stocker\")","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"martinschnder":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"| Display | Name | Github Profile | Portfolio |","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"azfarulmatin"},"content":"|-----------------------------|:----------------:|:------------------------------------------:|:--------------------------------:|","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"| ![](team/Martin.jpeg) | Martin Schneider | [Github](https://github.com/martinschnder) | [Portfolio](docs/team/Martin.md) |","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"| ![](team/Karishma.png) | Karishma | [Github](https://github.com/karishma-t) | [Portfolio](team/karishma.md) |","lastModifiedDate":"2023-10-06"},{"lineNumber":7,"author":{"gitId":"karishma-t"},"content":"| ![](team/Barbara_image.JPG) | Barbara Chong | [Github](https://github.com/barbaracwx) | [Portfolio](team/Barbara.md) |","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"| ![](team/HaoZhi.png) | Teo Hao Zhi | [Github](https://github.com/TeoHaoZhi) | [Portfolio](team/HaoZhi.md) |","lastModifiedDate":"2023-10-06"},{"lineNumber":9,"author":{"gitId":"azfarulmatin"},"content":"| ![](team/Azfarul.JPG) | Azfarul Matin | [Github](https://github.com/azfarulmatin) | [Portfolio](team/Azfarul.md) |","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-06"}],"authorContributionMap":{"karishma-t":1,"martinschnder":1,"azfarulmatin":2,"TeoHaoZhi":5,"-":2}},{"path":"docs/README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"# Stocker","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"Stocker v1.o is a desktop app that will provide quick access to currently available stock,","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"track incoming stock and expiration dates, and categorize drugs based on different labels.","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"It is optimized for use via a Command Line Interface (CLI). If you can type fast, Stocker","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"can get your inventory management tasks done faster than traditional GUI apps.","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Useful links:","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"* [User Guide](UserGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"* [Developer Guide](DeveloperGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"* [About Us](AboutUs.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"TeoHaoZhi":5,"-":6}},{"path":"docs/UserGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Introduction","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"Stocker v1.o is a desktop app that will provide quick access to currently available stock, ","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"track incoming stock and expiration dates, and categorize drugs based on different labels. ","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"It is optimized for use via a Command Line Interface (CLI). If you can type fast, Stocker ","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"can get your inventory management tasks done faster than traditional GUI apps.","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"## Quick Start","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"{Give steps to get started quickly}","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Ensure that you have Java 11 or above installed.","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"1. Down the latest version of `Stocker` from [here](http://link.to/duke).","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-add","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":"Adds a drug into the inventory list.","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-delete","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":"Deletes a drug being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-list","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":"List all drug information that is being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-find","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"TeoHaoZhi"},"content":"Finds drugs whose names contain any of the given keywords.","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-help","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"TeoHaoZhi"},"content":"List all currently available commands in current version, their ","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":"uses and how to format them in the command line.","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"TeoHaoZhi"},"content":"## Usage","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":"### `add` - Adds drug into inventory list","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":"Adds a drug to be tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"TeoHaoZhi"},"content":"add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY","lastModifiedDate":"2023-10-10"},{"lineNumber":50,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":51,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"TeoHaoZhi"},"content":"`add /n Panadol /d 12 June 2026 /q 300","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":57,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":58,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":59,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":60,"author":{"gitId":"TeoHaoZhi"},"content":"added : Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":61,"author":{"gitId":"TeoHaoZhi"},"content":"Expiry : 12 June 2026","lastModifiedDate":"2023-10-10"},{"lineNumber":62,"author":{"gitId":"TeoHaoZhi"},"content":"Quantity : 300","lastModifiedDate":"2023-10-10"},{"lineNumber":63,"author":{"gitId":"TeoHaoZhi"},"content":"There are now 1 type of drugs in the system","lastModifiedDate":"2023-10-10"},{"lineNumber":64,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":65,"author":{"gitId":"TeoHaoZhi"},"content":"### `delete` - Deletes a drug being tracked by the system","lastModifiedDate":"2023-10-10"},{"lineNumber":66,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":67,"author":{"gitId":"TeoHaoZhi"},"content":"Deletes a drug being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":68,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":69,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":70,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":71,"author":{"gitId":"TeoHaoZhi"},"content":"delete /n DRUG_NAM","lastModifiedDate":"2023-10-10"},{"lineNumber":72,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":73,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":74,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":75,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":76,"author":{"gitId":"TeoHaoZhi"},"content":"`delete /n Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":77,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":78,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":79,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":80,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":81,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":82,"author":{"gitId":"TeoHaoZhi"},"content":"removed : Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":83,"author":{"gitId":"TeoHaoZhi"},"content":"There are now 0 drugs in the system","lastModifiedDate":"2023-10-10"},{"lineNumber":84,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":85,"author":{"gitId":"TeoHaoZhi"},"content":"### `list` - List all drug information that is being tracked by the system","lastModifiedDate":"2023-10-10"},{"lineNumber":86,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":87,"author":{"gitId":"TeoHaoZhi"},"content":"List all drug information that is being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":88,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":89,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":90,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":91,"author":{"gitId":"TeoHaoZhi"},"content":"list","lastModifiedDate":"2023-10-10"},{"lineNumber":92,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":93,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":94,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":95,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":96,"author":{"gitId":"TeoHaoZhi"},"content":"`list","lastModifiedDate":"2023-10-10"},{"lineNumber":97,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":98,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":99,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":100,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":101,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":102,"author":{"gitId":"TeoHaoZhi"},"content":"Here are a list of drugs in the system:","lastModifiedDate":"2023-10-10"},{"lineNumber":103,"author":{"gitId":"TeoHaoZhi"},"content":"1. Panadol / 26 June 2023/ [300]","lastModifiedDate":"2023-10-10"},{"lineNumber":104,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":105,"author":{"gitId":"TeoHaoZhi"},"content":"### `find` - Finds drugs whose names contain any of the given keywords","lastModifiedDate":"2023-10-10"},{"lineNumber":106,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":107,"author":{"gitId":"TeoHaoZhi"},"content":"Finds drugs whose names contain any of the given keywords.","lastModifiedDate":"2023-10-10"},{"lineNumber":108,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":109,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":110,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":111,"author":{"gitId":"TeoHaoZhi"},"content":"list","lastModifiedDate":"2023-10-10"},{"lineNumber":112,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":113,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":114,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":115,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":116,"author":{"gitId":"TeoHaoZhi"},"content":"` find KEYWORD [MORE_KEYWORDS]","lastModifiedDate":"2023-10-10"},{"lineNumber":117,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":118,"author":{"gitId":"TeoHaoZhi"},"content":"The search is case-insensitive, meaning that \"aspirin\" will match \"Aspirin.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":119,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":120,"author":{"gitId":"TeoHaoZhi"},"content":"The order of the keywords does not matter. For example, \"Painkiller Relief\" will match \"Relief Painkiller.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":121,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":122,"author":{"gitId":"TeoHaoZhi"},"content":"Only the drug name is searched.","lastModifiedDate":"2023-10-10"},{"lineNumber":123,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":124,"author":{"gitId":"TeoHaoZhi"},"content":"Only full words will be matched. For example, \"Pan\" will not match \"Panadol.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":125,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":126,"author":{"gitId":"TeoHaoZhi"},"content":"Drugs matching at least one keyword will be returned (i.e., OR search).","lastModifiedDate":"2023-10-10"},{"lineNumber":127,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":128,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":129,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":130,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":131,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":132,"author":{"gitId":"TeoHaoZhi"},"content":"Here is a list of drugs matching your description:","lastModifiedDate":"2023-10-10"},{"lineNumber":133,"author":{"gitId":"TeoHaoZhi"},"content":"1. Panadol / 26 June 2023/ [300]","lastModifiedDate":"2023-10-10"},{"lineNumber":134,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":135,"author":{"gitId":"TeoHaoZhi"},"content":"### `help` - List currently available commands in current version, their uses and how to format them in the command line","lastModifiedDate":"2023-10-10"},{"lineNumber":136,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":137,"author":{"gitId":"TeoHaoZhi"},"content":"List all currently available commands in current version, ","lastModifiedDate":"2023-10-10"},{"lineNumber":138,"author":{"gitId":"TeoHaoZhi"},"content":"their uses and how to format them in the command line","lastModifiedDate":"2023-10-10"},{"lineNumber":139,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":140,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":141,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":142,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":143,"author":{"gitId":"TeoHaoZhi"},"content":"help","lastModifiedDate":"2023-10-10"},{"lineNumber":144,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":145,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":146,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2020-05-24"},{"lineNumber":147,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":148,"author":{"gitId":"TeoHaoZhi"},"content":"`help","lastModifiedDate":"2023-10-10"},{"lineNumber":149,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":150,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":151,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":152,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":153,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":154,"author":{"gitId":"TeoHaoZhi"},"content":"1. add","lastModifiedDate":"2023-10-10"},{"lineNumber":155,"author":{"gitId":"TeoHaoZhi"},"content":"Format: add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY","lastModifiedDate":"2023-10-10"},{"lineNumber":156,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":157,"author":{"gitId":"TeoHaoZhi"},"content":"2. delete","lastModifiedDate":"2023-10-10"},{"lineNumber":158,"author":{"gitId":"TeoHaoZhi"},"content":"Format: delete /n DRUG_NAME","lastModifiedDate":"2023-10-10"},{"lineNumber":159,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":160,"author":{"gitId":"TeoHaoZhi"},"content":"3. list","lastModifiedDate":"2023-10-10"},{"lineNumber":161,"author":{"gitId":"TeoHaoZhi"},"content":"Format: list","lastModifiedDate":"2023-10-10"},{"lineNumber":162,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":163,"author":{"gitId":"TeoHaoZhi"},"content":"4. find","lastModifiedDate":"2023-10-10"},{"lineNumber":164,"author":{"gitId":"TeoHaoZhi"},"content":"Format: find KEYWORD [MORE_KEYWORDS]","lastModifiedDate":"2023-10-10"},{"lineNumber":165,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":166,"author":{"gitId":"TeoHaoZhi"},"content":"5. help","lastModifiedDate":"2023-10-10"},{"lineNumber":167,"author":{"gitId":"TeoHaoZhi"},"content":"Format : help","lastModifiedDate":"2023-10-10"},{"lineNumber":168,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":169,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":170,"author":{"gitId":"-"},"content":"## FAQ","lastModifiedDate":"2020-05-24"},{"lineNumber":171,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":172,"author":{"gitId":"-"},"content":"**Q**: How do I transfer my data to another computer? ","lastModifiedDate":"2020-05-24"},{"lineNumber":173,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":174,"author":{"gitId":"-"},"content":"**A**: {your answer here}","lastModifiedDate":"2020-05-24"},{"lineNumber":175,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":176,"author":{"gitId":"-"},"content":"## Command Summary","lastModifiedDate":"2020-05-24"},{"lineNumber":177,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":178,"author":{"gitId":"-"},"content":"{Give a \u0027cheat sheet\u0027 of commands here}","lastModifiedDate":"2020-05-24"},{"lineNumber":179,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":180,"author":{"gitId":"TeoHaoZhi"},"content":"* add : `add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY`","lastModifiedDate":"2023-10-10"},{"lineNumber":181,"author":{"gitId":"TeoHaoZhi"},"content":"* delete : `delete /n DRUG_NAME`","lastModifiedDate":"2023-10-10"},{"lineNumber":182,"author":{"gitId":"TeoHaoZhi"},"content":"* list : `list`","lastModifiedDate":"2023-10-10"},{"lineNumber":183,"author":{"gitId":"TeoHaoZhi"},"content":"* find : `find KEYWORD [MORE_KEYWORDS]`","lastModifiedDate":"2023-10-10"},{"lineNumber":184,"author":{"gitId":"TeoHaoZhi"},"content":"* help : `help`","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"TeoHaoZhi":149,"-":35}},{"path":"docs/team/Azfarul.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"azfarulmatin"},"content":"# Azfarul Matin - Project Portfolio Page","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"azfarulmatin"},"content":"## Overview","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"azfarulmatin"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"azfarulmatin":6}},{"path":"docs/team/Barbara.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"Barbaracwx"},"content":"# Barbara Chong - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"Barbaracwx"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"Barbaracwx"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"Barbaracwx":6}},{"path":"docs/team/HaoZhi.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"# Hao Zhi - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"TeoHaoZhi":6}},{"path":"docs/team/Karishma.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"karishma-t"},"content":"# Karishma - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"karishma-t"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"karishma-t"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"karishma-t"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"karishma-t"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"karishma-t":5}},{"path":"docs/team/Martin.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"# Martin Schneider - Project Portfolio Page","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"## Overview","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"martinschnder":5}},{"path":"src/main/java/seedu/stocker/Stocker.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.ui.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.parser.Parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":"public class Stocker {","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" private Ui ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" private Inventory inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" public static void main(String[] launchArgs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" new Stocker().run();","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" /** Runs the program until termination. */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" public void run() {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" start();","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" runCommandLoopUntilExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" exit();","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" * Sets up the required objects, and prints the welcome message.","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" private void start() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" this.inventory \u003d new Inventory();","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":" ui.showWelcomeMessage();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"martinschnder"},"content":" /** Prints the Goodbye message and exits. */","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" private void exit() {","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" ui.showGoodbyeMessage();","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" System.exit(0);","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"martinschnder"},"content":" /** Reads the user command and executes it, until the user issues the exit command. */","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"martinschnder"},"content":" private void runCommandLoopUntilExitCommand() {","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"martinschnder"},"content":" Command command;","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"martinschnder"},"content":" do {","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"martinschnder"},"content":" String userCommandText \u003d ui.getUserCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"martinschnder"},"content":" command \u003d new Parser().parseCommand(userCommandText);","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"martinschnder"},"content":" CommandResult result \u003d executeCommand(command);","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"martinschnder"},"content":" ui.showResultToUser(result);","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"martinschnder"},"content":" } while (!ExitCommand.isExit(command));","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"martinschnder"},"content":" * Executes the command and returns the result.","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"martinschnder"},"content":" * @param command user command","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"martinschnder"},"content":" * @return result of the command","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"martinschnder"},"content":" private CommandResult executeCommand(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"martinschnder"},"content":" command.setData(inventory);","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"martinschnder"},"content":" CommandResult result \u003d command.execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":66,"author":{"gitId":"martinschnder"},"content":" return result;","lastModifiedDate":"2023-10-09"},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":68,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"martinschnder":58,"TeoHaoZhi":4,"-":6}},{"path":"src/main/java/seedu/stocker/commands/AddCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":" * Adds a drug into the inventory","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"add\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Adds a new drug to the drug list. \"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" + \"Parameters: NAME, EXPIRY DATE, QUANTITY, \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" + \" /n Doliprane /d 12/06/2035 /q 52\";","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_SUCCESS \u003d \"New drug added in the inventory: %1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" private final Drug toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" public AddCommand(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" this.toAdd \u003d new Drug(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" public Drug getDrug() {","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" return this.toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" inventory.addDrug(toAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd.name));","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":33,"TeoHaoZhi":1}},{"path":"src/main/java/seedu/stocker/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"public abstract class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" protected Inventory inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" protected Command() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" public void setData(Inventory inventory) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" this.inventory \u003d inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" * Executes the command and returns the result.","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" public abstract CommandResult execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":22}},{"path":"src/main/java/seedu/stocker/commands/CommandResult.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import java.util.Optional;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" * Represents the result of a command execution.","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"public class CommandResult {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" /** The feedback message to be shown to the user. Contains a description of the execution result */","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" public final String feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" /** The list of drugs that was produced by the command */","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" private final List\u003cDrug\u003e relevantDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public CommandResult(String feedbackToUser) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" relevantDrugs \u003d null;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" public CommandResult(String feedbackToUser, List\u003cDrug\u003e relevantDrugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" this.relevantDrugs \u003d relevantDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" * Returns a list of drugs that was produced by the command, if any.","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" public Optional\u003cList\u003cDrug\u003e\u003e getRelevantDrugs() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" return Optional.ofNullable(relevantDrugs);","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":36}},{"path":"src/main/java/seedu/stocker/commands/DeleteCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class DeleteCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"delete\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Removes a drug from drug list. \"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Parameters: Name \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" + \" \u003cDrug Name\u003e\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_SUCCESS \u003d \"Drug removed from inventory: %1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" //Edit functions below to give delete functionality","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" // public AddCommand(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" // this.toAdd \u003d new Drug(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" // }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" // public Drug getDrug() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" // return this.toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" // }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" //edit function to replace placeholder","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(String.format(MESSAGE_SUCCESS, inventory.allDrugs));","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":32}},{"path":"src/main/java/seedu/stocker/commands/ExitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Terminates the program.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"bye\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Exits the program.\\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_EXIT_ACKNOWEDGEMENT \u003d \"Exiting Stocker as requested ...\";","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(MESSAGE_EXIT_ACKNOWEDGEMENT);","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public static boolean isExit(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" return command instanceof ExitCommand; // instanceof returns false if it is null","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":22}},{"path":"src/main/java/seedu/stocker/commands/FindCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class FindCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"find\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Finds drug in inventory \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD + \" panadol\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" //edit function to give find functionality","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":20}},{"path":"src/main/java/seedu/stocker/commands/HelpCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Shows help instructions.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class HelpCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"help\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + DeleteCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + FindCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":21,"TeoHaoZhi":3}},{"path":"src/main/java/seedu/stocker/commands/IncorrectCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" * Represents an incorrect command. Upon execution, produces some feedback to the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"public class IncorrectCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public final String feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" public IncorrectCommand(String feedbackToUser) {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(feedbackToUser);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":20}},{"path":"src/main/java/seedu/stocker/commands/ListCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"list\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" //Edit this func to fill in implementation of list","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":24}},{"path":"src/main/java/seedu/stocker/common/Messages.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.common;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Container for user visible messages.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class Messages {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_WELCOME \u003d \"Welcome to your Stocker!\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_GOODBYE \u003d \"Good bye!\";","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_INVALID_COMMAND_FORMAT \u003d \"Invalid command format! \\n%1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":11}},{"path":"src/main/java/seedu/stocker/drugs/Drug.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.drugs;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class Drug {","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public String name;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":" String expiryDate;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" Long quantity;","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public Drug(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" this.name \u003d name;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" this.expiryDate \u003d expiryDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" this.quantity \u003d quantity;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":4,"TeoHaoZhi":12}},{"path":"src/main/java/seedu/stocker/drugs/Inventory.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.drugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"public class Inventory {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" public ArrayList\u003cDrug\u003e allDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public Inventory() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" this.allDrugs \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" public void addDrug(Drug drug) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" this.allDrugs.add(drug);","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":16}},{"path":"src/main/java/seedu/stocker/exceptions/StockerException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.exceptions;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class StockerException extends Exception{","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"TeoHaoZhi":4}},{"path":"src/main/java/seedu/stocker/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.AddCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.HelpCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.IncorrectCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_INVALID_COMMAND_FORMAT;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"public class Parser {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" * Parses user input into command for execution.","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" * @param userInput full user input string","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" * @return the command based on the user input","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" String[] words \u003d userInput.trim().split(\" \", 2); // split the input into command and arguments","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" if (words.length \u003d\u003d 0) {","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":" final String commandWord \u003d words[0];","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" final String arguments \u003d userInput.replaceFirst(commandWord, \"\").trim();","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" switch (commandWord) {","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" case AddCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" return prepareAddCommand(arguments);","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" case ExitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":" return new ExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" case HelpCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" return new HelpCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" default:","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"martinschnder"},"content":" * Parses arguments in the context of the add drug command.","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"martinschnder"},"content":" * @param args full command args string","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"martinschnder"},"content":" * @return the prepared command","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"martinschnder"},"content":" private Command prepareAddCommand(String args) {","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"martinschnder"},"content":" Pattern pattern \u003d Pattern.compile(\"/n (.*) /d (.*) /q (.*)\");","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"martinschnder"},"content":" Matcher matcher \u003d pattern.matcher(args);","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"martinschnder"},"content":" if (matcher.matches() \u0026\u0026 matcher.groupCount() \u003d\u003d 3) {","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"martinschnder"},"content":" String name \u003d matcher.group(1);","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"martinschnder"},"content":" String expiryDate \u003d matcher.group(2);","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"martinschnder"},"content":" Long quantity \u003d Long.parseLong(matcher.group(3));","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"martinschnder"},"content":" return new AddCommand(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"martinschnder"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":63,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":65}},{"path":"src/main/java/seedu/stocker/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.storage;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"public class Storage {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":4}},{"path":"src/main/java/seedu/stocker/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"import java.io.InputStream;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import java.util.Optional;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_WELCOME;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_GOODBYE;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":"public class Ui {","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" /** Offset required to convert between 1-indexing and 0-indexing. */","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public static final int DISPLAYED_INDEX_OFFSET \u003d 1;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" /** A decorative prefix added to the beginning of lines printed by Jerry */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" private static final String LINE_PREFIX \u003d \"|| \";","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" private static final String DIVIDER \u003d \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\";","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" /** A platform independent line separator. */","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" private static final String LS \u003d System.lineSeparator();","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" /** Format of indexed list item */","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" private static final String MESSAGE_INDEXED_LIST_ITEM \u003d \"\\t%1$d. %2$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" private final Scanner in;","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" private final PrintStream out;","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":" public Ui() {","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" this(System.in, System.out);","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" public Ui(InputStream in, PrintStream out) {","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" this.in \u003d new Scanner(in);","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" this.out \u003d out;","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":" public void printversion1Help(){","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Here are a list of possible commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"1. add - Add a drug into the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"2. delete - Remove a drug from the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"3. list - List all current drugs in the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"4. find - Find a specific drug in the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"5. help - List all available commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Here is the formatting for the commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For add:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"add /n \u003cdrug name\u003e /d \u003cexpiry date\u003e /q \u003cquantity\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For delete:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"delete /n \u003cdrug name\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":63,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For list:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"list\");","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":71,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For find:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":72,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"find \u003ckeyword\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":74,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":75,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For help:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"help\");","lastModifiedDate":"2023-10-08"},{"lineNumber":78,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"TeoHaoZhi"},"content":" ","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":82,"author":{"gitId":"martinschnder"},"content":" * Prompts for the command and reads the text entered by the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":83,"author":{"gitId":"martinschnder"},"content":" * Ignores empty, pure whitespace, and comment lines.","lastModifiedDate":"2023-10-09"},{"lineNumber":84,"author":{"gitId":"martinschnder"},"content":" * Echos the command back to the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":85,"author":{"gitId":"martinschnder"},"content":" * @return command (full line) entered by the user","lastModifiedDate":"2023-10-09"},{"lineNumber":86,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":87,"author":{"gitId":"martinschnder"},"content":" public String getUserCommand() {","lastModifiedDate":"2023-10-09"},{"lineNumber":88,"author":{"gitId":"martinschnder"},"content":" out.print(LINE_PREFIX + \"Enter command: \");","lastModifiedDate":"2023-10-09"},{"lineNumber":89,"author":{"gitId":"martinschnder"},"content":" String fullInputLine \u003d in.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":90,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":91,"author":{"gitId":"martinschnder"},"content":" return fullInputLine;","lastModifiedDate":"2023-10-09"},{"lineNumber":92,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":93,"author":{"gitId":"TeoHaoZhi"},"content":" ","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"martinschnder"},"content":" /** Shows message(s) to the user */","lastModifiedDate":"2023-10-09"},{"lineNumber":95,"author":{"gitId":"martinschnder"},"content":" public void showToUser(String... message) {","lastModifiedDate":"2023-10-09"},{"lineNumber":96,"author":{"gitId":"martinschnder"},"content":" for (String m : message) {","lastModifiedDate":"2023-10-09"},{"lineNumber":97,"author":{"gitId":"martinschnder"},"content":" out.println(LINE_PREFIX + m.replace(\"\\n\", LS + LINE_PREFIX));","lastModifiedDate":"2023-10-09"},{"lineNumber":98,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":99,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":100,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":101,"author":{"gitId":"martinschnder"},"content":" public void showWelcomeMessage() {","lastModifiedDate":"2023-10-09"},{"lineNumber":102,"author":{"gitId":"martinschnder"},"content":" showToUser(MESSAGE_WELCOME, DIVIDER, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":103,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":104,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"martinschnder"},"content":" public void showGoodbyeMessage() {","lastModifiedDate":"2023-10-09"},{"lineNumber":106,"author":{"gitId":"martinschnder"},"content":" showToUser(MESSAGE_GOODBYE, DIVIDER, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":107,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":108,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":109,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":110,"author":{"gitId":"martinschnder"},"content":" * Shows the result of a command execution to the user. Includes additional formatting to demarcate different","lastModifiedDate":"2023-10-09"},{"lineNumber":111,"author":{"gitId":"martinschnder"},"content":" * command execution segments.","lastModifiedDate":"2023-10-09"},{"lineNumber":112,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":113,"author":{"gitId":"martinschnder"},"content":" public void showResultToUser(CommandResult result) {","lastModifiedDate":"2023-10-09"},{"lineNumber":114,"author":{"gitId":"martinschnder"},"content":" final Optional\u003cList\u003cDrug\u003e\u003e resultDrugs \u003d result.getRelevantDrugs();","lastModifiedDate":"2023-10-09"},{"lineNumber":115,"author":{"gitId":"martinschnder"},"content":" if (resultDrugs.isPresent()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":116,"author":{"gitId":"martinschnder"},"content":" showDrugListView(resultDrugs.get());","lastModifiedDate":"2023-10-09"},{"lineNumber":117,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":118,"author":{"gitId":"martinschnder"},"content":" showToUser(result.feedbackToUser, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":119,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":120,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":121,"author":{"gitId":"martinschnder"},"content":" /** Shows a list of strings to the user, formatted as an indexed list. */","lastModifiedDate":"2023-10-09"},{"lineNumber":122,"author":{"gitId":"martinschnder"},"content":" private void showToUserAsIndexedList(List\u003cString\u003e list) {","lastModifiedDate":"2023-10-09"},{"lineNumber":123,"author":{"gitId":"martinschnder"},"content":" showToUser(getIndexedListForViewing(list));","lastModifiedDate":"2023-10-09"},{"lineNumber":124,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":125,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":126,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":127,"author":{"gitId":"martinschnder"},"content":" * Shows a list of drugs to the user, formatted as an indexed list.","lastModifiedDate":"2023-10-09"},{"lineNumber":128,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":129,"author":{"gitId":"martinschnder"},"content":" private void showDrugListView(List\u003cDrug\u003e drugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":130,"author":{"gitId":"martinschnder"},"content":" final List\u003cString\u003e formattedDrugs \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":131,"author":{"gitId":"martinschnder"},"content":" for (Drug drug : drugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":132,"author":{"gitId":"martinschnder"},"content":" formattedDrugs.add(drug.toString());","lastModifiedDate":"2023-10-09"},{"lineNumber":133,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":134,"author":{"gitId":"martinschnder"},"content":" showToUserAsIndexedList(formattedDrugs);","lastModifiedDate":"2023-10-09"},{"lineNumber":135,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":136,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":137,"author":{"gitId":"martinschnder"},"content":" /** Formats a list of strings as a viewable indexed list. */","lastModifiedDate":"2023-10-09"},{"lineNumber":138,"author":{"gitId":"martinschnder"},"content":" private static String getIndexedListForViewing(List\u003cString\u003e listItems) {","lastModifiedDate":"2023-10-09"},{"lineNumber":139,"author":{"gitId":"martinschnder"},"content":" final StringBuilder formatted \u003d new StringBuilder();","lastModifiedDate":"2023-10-09"},{"lineNumber":140,"author":{"gitId":"martinschnder"},"content":" int displayIndex \u003d DISPLAYED_INDEX_OFFSET;","lastModifiedDate":"2023-10-09"},{"lineNumber":141,"author":{"gitId":"martinschnder"},"content":" for (String listItem : listItems) {","lastModifiedDate":"2023-10-09"},{"lineNumber":142,"author":{"gitId":"martinschnder"},"content":" formatted.append(getIndexedListItem(displayIndex, listItem)).append(\"\\n\");","lastModifiedDate":"2023-10-09"},{"lineNumber":143,"author":{"gitId":"martinschnder"},"content":" displayIndex++;","lastModifiedDate":"2023-10-09"},{"lineNumber":144,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":145,"author":{"gitId":"martinschnder"},"content":" return formatted.toString();","lastModifiedDate":"2023-10-09"},{"lineNumber":146,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":147,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":148,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":149,"author":{"gitId":"martinschnder"},"content":" * Formats a string as a viewable indexed list item.","lastModifiedDate":"2023-10-09"},{"lineNumber":150,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":151,"author":{"gitId":"martinschnder"},"content":" * @param visibleIndex visible index for this listing","lastModifiedDate":"2023-10-09"},{"lineNumber":152,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":153,"author":{"gitId":"martinschnder"},"content":" private static String getIndexedListItem(int visibleIndex, String listItem) {","lastModifiedDate":"2023-10-09"},{"lineNumber":154,"author":{"gitId":"martinschnder"},"content":" return String.format(MESSAGE_INDEXED_LIST_ITEM, visibleIndex, listItem);","lastModifiedDate":"2023-10-09"},{"lineNumber":155,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":156,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":157,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":104,"TeoHaoZhi":53}},{"path":"src/test/java/seedu/stocker/StockerTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"class StockerTest {","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"TeoHaoZhi":2,"-":10}},{"path":"src/test/java/seedu/stocker/commands/HelpCommandTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"class HelpCommandTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" public void executeTest() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" HelpCommand command \u003d new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" String expectedOutput \u003d \"|| add: Adds a new drug to the drug list. Parameters: NAME, EXPIRY DATE, QUANTITY, \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: add /n Doliprane /d 12/06/2035 /q 52\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| delete: Removes a drug from drug list. Parameters: Name \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: delete \u003cDrug Name\u003e\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| help: Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: help\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| list: Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: list\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| find: Finds drug in inventory \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: find panadol\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| bye: Exits the program.\\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":" + \"|| Example: bye\";","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" assertEquals(expectedOutput, new CommandResult(expectedOutput).feedbackToUser);","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"TeoHaoZhi":27}},{"path":"src/test/java/seedu/stocker/ui/UiTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.ByteArrayOutputStream;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"class UiTest {","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" @Test","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" public void printVersion1HelpTest() {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" ByteArrayOutputStream outContent \u003d new ByteArrayOutputStream();","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" System.setOut(new PrintStream(outContent));","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" Ui toTest \u003d new Ui();","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" toTest.printversion1Help();","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" String expectedOutput \u003d \"Here are a list of possible commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" + \"1. add - Add a drug into the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" + \"2. delete - Remove a drug from the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":" + \"3. list - List all current drugs in the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":" + \"4. find - Find a specific drug in the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" + \"5. help - List all available commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Here is the formatting for the commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For add:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":" + \"add /n \u003cdrug name\u003e /d \u003cexpiry date\u003e /q \u003cquantity\u003e\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"TeoHaoZhi"},"content":" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For delete:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":" + \"delete /n \u003cdrug name\u003e\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For list:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"TeoHaoZhi"},"content":" + \"list\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For find:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"TeoHaoZhi"},"content":" + \"find \u003ckeyword\u003e\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For help:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":" + \"help\" + System.getProperty(\"line.separator\");","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"TeoHaoZhi"},"content":" assertEquals(expectedOutput, outContent.toString());","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":1,"TeoHaoZhi":46}}] +[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" mainClass.set(\"seedu.stocker.Stocker\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" archiveBaseName.set(\"stocker\")","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"martinschnder":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"| Display | Name | Github Profile | Portfolio |","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"azfarulmatin"},"content":"|-----------------------------|:----------------:|:------------------------------------------:|:--------------------------------:|","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"| ![](team/Martin.jpeg) | Martin Schneider | [Github](https://github.com/martinschnder) | [Portfolio](docs/team/Martin.md) |","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"| ![](team/Karishma.png) | Karishma | [Github](https://github.com/karishma-t) | [Portfolio](team/karishma.md) |","lastModifiedDate":"2023-10-06"},{"lineNumber":7,"author":{"gitId":"karishma-t"},"content":"| ![](team/Barbara_image.JPG) | Barbara Chong | [Github](https://github.com/barbaracwx) | [Portfolio](team/Barbara.md) |","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"| ![](team/HaoZhi.png) | Teo Hao Zhi | [Github](https://github.com/TeoHaoZhi) | [Portfolio](team/HaoZhi.md) |","lastModifiedDate":"2023-10-06"},{"lineNumber":9,"author":{"gitId":"azfarulmatin"},"content":"| ![](team/Azfarul.JPG) | Azfarul Matin | [Github](https://github.com/azfarulmatin) | [Portfolio](team/Azfarul.md) |","lastModifiedDate":"2023-10-07"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-06"}],"authorContributionMap":{"karishma-t":1,"martinschnder":1,"azfarulmatin":2,"TeoHaoZhi":5,"-":2}},{"path":"docs/README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"# Stocker","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"Stocker v1.o is a desktop app that will provide quick access to currently available stock,","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"track incoming stock and expiration dates, and categorize drugs based on different labels.","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"It is optimized for use via a Command Line Interface (CLI). If you can type fast, Stocker","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"can get your inventory management tasks done faster than traditional GUI apps.","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Useful links:","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"* [User Guide](UserGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"* [Developer Guide](DeveloperGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"* [About Us](AboutUs.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"TeoHaoZhi":5,"-":6}},{"path":"docs/UserGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Introduction","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"Stocker v1.o is a desktop app that will provide quick access to currently available stock, ","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"track incoming stock and expiration dates, and categorize drugs based on different labels. ","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"It is optimized for use via a Command Line Interface (CLI). If you can type fast, Stocker ","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"can get your inventory management tasks done faster than traditional GUI apps.","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"## Quick Start","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"{Give steps to get started quickly}","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Ensure that you have Java 11 or above installed.","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"1. Down the latest version of `Stocker` from [here](http://link.to/duke).","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-add","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":"Adds a drug into the inventory list.","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-delete","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":"Deletes a drug being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-list","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":"List all drug information that is being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-find","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"TeoHaoZhi"},"content":"Finds drugs whose names contain any of the given keywords.","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":"### Feature-help","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"TeoHaoZhi"},"content":"List all currently available commands in current version, their ","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":"uses and how to format them in the command line.","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"TeoHaoZhi"},"content":"## Usage","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":"### `add` - Adds drug into inventory list","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":"Adds a drug to be tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"TeoHaoZhi"},"content":"add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY","lastModifiedDate":"2023-10-10"},{"lineNumber":50,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":51,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"TeoHaoZhi"},"content":"`add /n Panadol /d 12 June 2026 /q 300","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":57,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":58,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":59,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":60,"author":{"gitId":"TeoHaoZhi"},"content":"added : Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":61,"author":{"gitId":"TeoHaoZhi"},"content":"Expiry : 12 June 2026","lastModifiedDate":"2023-10-10"},{"lineNumber":62,"author":{"gitId":"TeoHaoZhi"},"content":"Quantity : 300","lastModifiedDate":"2023-10-10"},{"lineNumber":63,"author":{"gitId":"TeoHaoZhi"},"content":"There are now 1 type of drugs in the system","lastModifiedDate":"2023-10-10"},{"lineNumber":64,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":65,"author":{"gitId":"TeoHaoZhi"},"content":"### `delete` - Deletes a drug being tracked by the system","lastModifiedDate":"2023-10-10"},{"lineNumber":66,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":67,"author":{"gitId":"TeoHaoZhi"},"content":"Deletes a drug being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":68,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":69,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":70,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":71,"author":{"gitId":"TeoHaoZhi"},"content":"delete /n DRUG_NAM","lastModifiedDate":"2023-10-10"},{"lineNumber":72,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":73,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":74,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":75,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":76,"author":{"gitId":"TeoHaoZhi"},"content":"`delete /n Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":77,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":78,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":79,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":80,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":81,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":82,"author":{"gitId":"TeoHaoZhi"},"content":"removed : Panadol","lastModifiedDate":"2023-10-10"},{"lineNumber":83,"author":{"gitId":"TeoHaoZhi"},"content":"There are now 0 drugs in the system","lastModifiedDate":"2023-10-10"},{"lineNumber":84,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":85,"author":{"gitId":"TeoHaoZhi"},"content":"### `list` - List all drug information that is being tracked by the system","lastModifiedDate":"2023-10-10"},{"lineNumber":86,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":87,"author":{"gitId":"TeoHaoZhi"},"content":"List all drug information that is being tracked by the system.","lastModifiedDate":"2023-10-10"},{"lineNumber":88,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":89,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":90,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":91,"author":{"gitId":"TeoHaoZhi"},"content":"list","lastModifiedDate":"2023-10-10"},{"lineNumber":92,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":93,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":94,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":95,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":96,"author":{"gitId":"TeoHaoZhi"},"content":"`list","lastModifiedDate":"2023-10-10"},{"lineNumber":97,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":98,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":99,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":100,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":101,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":102,"author":{"gitId":"TeoHaoZhi"},"content":"Here are a list of drugs in the system:","lastModifiedDate":"2023-10-10"},{"lineNumber":103,"author":{"gitId":"TeoHaoZhi"},"content":"1. Panadol / 26 June 2023/ [300]","lastModifiedDate":"2023-10-10"},{"lineNumber":104,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":105,"author":{"gitId":"TeoHaoZhi"},"content":"### `find` - Finds drugs whose names contain any of the given keywords","lastModifiedDate":"2023-10-10"},{"lineNumber":106,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":107,"author":{"gitId":"TeoHaoZhi"},"content":"Finds drugs whose names contain any of the given keywords.","lastModifiedDate":"2023-10-10"},{"lineNumber":108,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":109,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":110,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":111,"author":{"gitId":"TeoHaoZhi"},"content":"list","lastModifiedDate":"2023-10-10"},{"lineNumber":112,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":113,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":114,"author":{"gitId":"TeoHaoZhi"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":115,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":116,"author":{"gitId":"TeoHaoZhi"},"content":"` find KEYWORD [MORE_KEYWORDS]","lastModifiedDate":"2023-10-10"},{"lineNumber":117,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":118,"author":{"gitId":"TeoHaoZhi"},"content":"The search is case-insensitive, meaning that \"aspirin\" will match \"Aspirin.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":119,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":120,"author":{"gitId":"TeoHaoZhi"},"content":"The order of the keywords does not matter. For example, \"Painkiller Relief\" will match \"Relief Painkiller.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":121,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":122,"author":{"gitId":"TeoHaoZhi"},"content":"Only the drug name is searched.","lastModifiedDate":"2023-10-10"},{"lineNumber":123,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":124,"author":{"gitId":"TeoHaoZhi"},"content":"Only full words will be matched. For example, \"Pan\" will not match \"Panadol.\"","lastModifiedDate":"2023-10-10"},{"lineNumber":125,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":126,"author":{"gitId":"TeoHaoZhi"},"content":"Drugs matching at least one keyword will be returned (i.e., OR search).","lastModifiedDate":"2023-10-10"},{"lineNumber":127,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":128,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":129,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":130,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":131,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":132,"author":{"gitId":"TeoHaoZhi"},"content":"Here is a list of drugs matching your description:","lastModifiedDate":"2023-10-10"},{"lineNumber":133,"author":{"gitId":"TeoHaoZhi"},"content":"1. Panadol / 26 June 2023/ [300]","lastModifiedDate":"2023-10-10"},{"lineNumber":134,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":135,"author":{"gitId":"TeoHaoZhi"},"content":"### `help` - List currently available commands in current version, their uses and how to format them in the command line","lastModifiedDate":"2023-10-10"},{"lineNumber":136,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":137,"author":{"gitId":"TeoHaoZhi"},"content":"List all currently available commands in current version, ","lastModifiedDate":"2023-10-10"},{"lineNumber":138,"author":{"gitId":"TeoHaoZhi"},"content":"their uses and how to format them in the command line","lastModifiedDate":"2023-10-10"},{"lineNumber":139,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":140,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":141,"author":{"gitId":"TeoHaoZhi"},"content":"Format:","lastModifiedDate":"2023-10-10"},{"lineNumber":142,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":143,"author":{"gitId":"TeoHaoZhi"},"content":"help","lastModifiedDate":"2023-10-10"},{"lineNumber":144,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":145,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":146,"author":{"gitId":"-"},"content":"Example of usage:","lastModifiedDate":"2020-05-24"},{"lineNumber":147,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":148,"author":{"gitId":"TeoHaoZhi"},"content":"`help","lastModifiedDate":"2023-10-10"},{"lineNumber":149,"author":{"gitId":"TeoHaoZhi"},"content":"`","lastModifiedDate":"2023-10-10"},{"lineNumber":150,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":151,"author":{"gitId":"TeoHaoZhi"},"content":"Expected outcome:","lastModifiedDate":"2023-10-10"},{"lineNumber":152,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":153,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":154,"author":{"gitId":"TeoHaoZhi"},"content":"1. add","lastModifiedDate":"2023-10-10"},{"lineNumber":155,"author":{"gitId":"TeoHaoZhi"},"content":"Format: add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY","lastModifiedDate":"2023-10-10"},{"lineNumber":156,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":157,"author":{"gitId":"TeoHaoZhi"},"content":"2. delete","lastModifiedDate":"2023-10-10"},{"lineNumber":158,"author":{"gitId":"TeoHaoZhi"},"content":"Format: delete /n DRUG_NAME","lastModifiedDate":"2023-10-10"},{"lineNumber":159,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":160,"author":{"gitId":"TeoHaoZhi"},"content":"3. list","lastModifiedDate":"2023-10-10"},{"lineNumber":161,"author":{"gitId":"TeoHaoZhi"},"content":"Format: list","lastModifiedDate":"2023-10-10"},{"lineNumber":162,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":163,"author":{"gitId":"TeoHaoZhi"},"content":"4. find","lastModifiedDate":"2023-10-10"},{"lineNumber":164,"author":{"gitId":"TeoHaoZhi"},"content":"Format: find KEYWORD [MORE_KEYWORDS]","lastModifiedDate":"2023-10-10"},{"lineNumber":165,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":166,"author":{"gitId":"TeoHaoZhi"},"content":"5. help","lastModifiedDate":"2023-10-10"},{"lineNumber":167,"author":{"gitId":"TeoHaoZhi"},"content":"Format : help","lastModifiedDate":"2023-10-10"},{"lineNumber":168,"author":{"gitId":"TeoHaoZhi"},"content":"```","lastModifiedDate":"2023-10-10"},{"lineNumber":169,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":170,"author":{"gitId":"-"},"content":"## FAQ","lastModifiedDate":"2020-05-24"},{"lineNumber":171,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":172,"author":{"gitId":"-"},"content":"**Q**: How do I transfer my data to another computer? ","lastModifiedDate":"2020-05-24"},{"lineNumber":173,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":174,"author":{"gitId":"-"},"content":"**A**: {your answer here}","lastModifiedDate":"2020-05-24"},{"lineNumber":175,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":176,"author":{"gitId":"-"},"content":"## Command Summary","lastModifiedDate":"2020-05-24"},{"lineNumber":177,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":178,"author":{"gitId":"-"},"content":"{Give a \u0027cheat sheet\u0027 of commands here}","lastModifiedDate":"2020-05-24"},{"lineNumber":179,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":180,"author":{"gitId":"TeoHaoZhi"},"content":"* add : `add /n DRUG_NAME /d EXPIRY_DATE /q QUANTITY`","lastModifiedDate":"2023-10-10"},{"lineNumber":181,"author":{"gitId":"TeoHaoZhi"},"content":"* delete : `delete /n DRUG_NAME`","lastModifiedDate":"2023-10-10"},{"lineNumber":182,"author":{"gitId":"TeoHaoZhi"},"content":"* list : `list`","lastModifiedDate":"2023-10-10"},{"lineNumber":183,"author":{"gitId":"TeoHaoZhi"},"content":"* find : `find KEYWORD [MORE_KEYWORDS]`","lastModifiedDate":"2023-10-10"},{"lineNumber":184,"author":{"gitId":"TeoHaoZhi"},"content":"* help : `help`","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"TeoHaoZhi":149,"-":35}},{"path":"docs/team/Azfarul.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"azfarulmatin"},"content":"# Azfarul Matin - Project Portfolio Page","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"azfarulmatin"},"content":"## Overview","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"azfarulmatin"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":6,"author":{"gitId":"azfarulmatin"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"azfarulmatin":6}},{"path":"docs/team/Barbara.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"Barbaracwx"},"content":"# Barbara Chong - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"Barbaracwx"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"Barbaracwx"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"Barbaracwx"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"Barbaracwx":6}},{"path":"docs/team/HaoZhi.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"# Hao Zhi - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"TeoHaoZhi":6}},{"path":"docs/team/Karishma.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"karishma-t"},"content":"# Karishma - Project Portfolio Page","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"karishma-t"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"karishma-t"},"content":"## Overview","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"karishma-t"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"karishma-t"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"karishma-t":5}},{"path":"docs/team/Martin.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"# Martin Schneider - Project Portfolio Page","lastModifiedDate":"2023-10-07"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"## Overview","lastModifiedDate":"2023-10-07"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-07"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-07"}],"authorContributionMap":{"martinschnder":5}},{"path":"src/main/java/seedu/stocker/Stocker.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.ui.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.parser.Parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":"public class Stocker {","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" private Ui ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" private Inventory inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" public static void main(String[] launchArgs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" new Stocker().run();","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" /** Runs the program until termination. */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" public void run() {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" start();","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" runCommandLoopUntilExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" exit();","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" * Sets up the required objects, and prints the welcome message.","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" private void start() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" this.ui \u003d new Ui();","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" this.inventory \u003d new Inventory();","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":" ui.showWelcomeMessage();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"martinschnder"},"content":" /** Prints the Goodbye message and exits. */","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" private void exit() {","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" ui.showGoodbyeMessage();","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" System.exit(0);","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"martinschnder"},"content":" /** Reads the user command and executes it, until the user issues the exit command. */","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"martinschnder"},"content":" private void runCommandLoopUntilExitCommand() {","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"martinschnder"},"content":" Command command;","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"martinschnder"},"content":" do {","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"martinschnder"},"content":" String userCommandText \u003d ui.getUserCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"martinschnder"},"content":" command \u003d new Parser().parseCommand(userCommandText);","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"martinschnder"},"content":" CommandResult result \u003d executeCommand(command);","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"martinschnder"},"content":" ui.showResultToUser(result);","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"martinschnder"},"content":" } while (!ExitCommand.isExit(command));","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"martinschnder"},"content":" * Executes the command and returns the result.","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"martinschnder"},"content":" * @param command user command","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"martinschnder"},"content":" * @return result of the command","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"martinschnder"},"content":" private CommandResult executeCommand(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"martinschnder"},"content":" command.setData(inventory);","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"martinschnder"},"content":" CommandResult result \u003d command.execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":66,"author":{"gitId":"martinschnder"},"content":" return result;","lastModifiedDate":"2023-10-09"},{"lineNumber":67,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":68,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"martinschnder":58,"TeoHaoZhi":4,"-":6}},{"path":"src/main/java/seedu/stocker/authentication/LoginSystem.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.authentication;","lastModifiedDate":"2023-10-11"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.File;","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"import java.util.HashMap;","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"import java.util.Map;","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":"public class LoginSystem {","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" private HashMap\u003cString, String\u003e users;","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" public LoginSystem() throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" users \u003d new HashMap\u003c\u003e();","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" File holder \u003d new File(\"./users.txt\");","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" if (holder.exists() \u003d\u003d false) {","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" holder.createNewFile();","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"File created: \" + holder.getName());","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":" } else {","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(holder.getAbsolutePath());","lastModifiedDate":"2023-10-11"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"File already exists.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":28,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":" public String showWelcomeMessage() {","lastModifiedDate":"2023-10-11"},{"lineNumber":30,"author":{"gitId":"TeoHaoZhi"},"content":" Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-11"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Welcome! Key in the respective number based on your needs \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":33,"author":{"gitId":"TeoHaoZhi"},"content":" + \"1.Register user \\n\" + \"2.Login \");","lastModifiedDate":"2023-10-11"},{"lineNumber":34,"author":{"gitId":"TeoHaoZhi"},"content":" String input \u003d in.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":36,"author":{"gitId":"TeoHaoZhi"},"content":" if (input.equals(\"1\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":37,"author":{"gitId":"TeoHaoZhi"},"content":" return \"1\";","lastModifiedDate":"2023-10-11"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":" } else if (input.equals(\"2\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":39,"author":{"gitId":"TeoHaoZhi"},"content":" return \"2\";","lastModifiedDate":"2023-10-11"},{"lineNumber":40,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":41,"author":{"gitId":"TeoHaoZhi"},"content":" while (!input.equals(\"1\") | !input.equals(\"2\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Invalid Input, enter 1 or 2 only!\");","lastModifiedDate":"2023-10-11"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":" input \u003d in.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":" in.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":" return \"An error occurred\";","lastModifiedDate":"2023-10-11"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":48,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":49,"author":{"gitId":"TeoHaoZhi"},"content":" public void newUserCreator() throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":50,"author":{"gitId":"TeoHaoZhi"},"content":" Scanner input \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-11"},{"lineNumber":51,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Enter your username:\");","lastModifiedDate":"2023-10-11"},{"lineNumber":53,"author":{"gitId":"TeoHaoZhi"},"content":" String username \u003d input.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":54,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":55,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Enter your password:\");","lastModifiedDate":"2023-10-11"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":" String password \u003d input.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":57,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":58,"author":{"gitId":"TeoHaoZhi"},"content":" if (users.containsKey(username)) {","lastModifiedDate":"2023-10-11"},{"lineNumber":59,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"User already exists.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":60,"author":{"gitId":"TeoHaoZhi"},"content":" } else {","lastModifiedDate":"2023-10-11"},{"lineNumber":61,"author":{"gitId":"TeoHaoZhi"},"content":" users.put(username, password);","lastModifiedDate":"2023-10-11"},{"lineNumber":62,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Registration successful.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":63,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":64,"author":{"gitId":"TeoHaoZhi"},"content":" input.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":65,"author":{"gitId":"TeoHaoZhi"},"content":" writeNewUserToFile();","lastModifiedDate":"2023-10-11"},{"lineNumber":66,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":67,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":68,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":69,"author":{"gitId":"TeoHaoZhi"},"content":" public void loginExistingUser() {","lastModifiedDate":"2023-10-11"},{"lineNumber":70,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":71,"author":{"gitId":"TeoHaoZhi"},"content":" Scanner input \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-11"},{"lineNumber":72,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":73,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Enter your username:\");","lastModifiedDate":"2023-10-11"},{"lineNumber":74,"author":{"gitId":"TeoHaoZhi"},"content":" String usernameInput \u003d input.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":75,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Enter your password:\");","lastModifiedDate":"2023-10-11"},{"lineNumber":76,"author":{"gitId":"TeoHaoZhi"},"content":" String passwordInput \u003d input.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":77,"author":{"gitId":"TeoHaoZhi"},"content":" if (!users.containsKey(usernameInput)) {","lastModifiedDate":"2023-10-11"},{"lineNumber":78,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Invalid username or password.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":79,"author":{"gitId":"TeoHaoZhi"},"content":" } else {","lastModifiedDate":"2023-10-11"},{"lineNumber":80,"author":{"gitId":"TeoHaoZhi"},"content":" if (users.get(usernameInput).equals(passwordInput)) {","lastModifiedDate":"2023-10-11"},{"lineNumber":81,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Login successful.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":82,"author":{"gitId":"TeoHaoZhi"},"content":" } else {","lastModifiedDate":"2023-10-11"},{"lineNumber":83,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Invalid username or password.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":84,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":85,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":86,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":87,"author":{"gitId":"TeoHaoZhi"},"content":" input.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":88,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":89,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":90,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":91,"author":{"gitId":"TeoHaoZhi"},"content":" public void writeNewUserToFile() throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":92,"author":{"gitId":"TeoHaoZhi"},"content":" BufferedWriter writer \u003d new BufferedWriter(new FileWriter(\"./users.txt\"));","lastModifiedDate":"2023-10-11"},{"lineNumber":93,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":94,"author":{"gitId":"TeoHaoZhi"},"content":" for (Map.Entry\u003cString, String\u003e entry :","lastModifiedDate":"2023-10-11"},{"lineNumber":95,"author":{"gitId":"TeoHaoZhi"},"content":" users.entrySet()) {","lastModifiedDate":"2023-10-11"},{"lineNumber":96,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":97,"author":{"gitId":"TeoHaoZhi"},"content":" // put key and value separated by a colon","lastModifiedDate":"2023-10-11"},{"lineNumber":98,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":99,"author":{"gitId":"TeoHaoZhi"},"content":" writer.write(entry.getKey() + \":\"","lastModifiedDate":"2023-10-11"},{"lineNumber":100,"author":{"gitId":"TeoHaoZhi"},"content":" + entry.getValue());","lastModifiedDate":"2023-10-11"},{"lineNumber":101,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":102,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":103,"author":{"gitId":"TeoHaoZhi"},"content":" // new line","lastModifiedDate":"2023-10-11"},{"lineNumber":104,"author":{"gitId":"TeoHaoZhi"},"content":" writer.newLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":105,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":106,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":107,"author":{"gitId":"TeoHaoZhi"},"content":" writer.flush();","lastModifiedDate":"2023-10-11"},{"lineNumber":108,"author":{"gitId":"TeoHaoZhi"},"content":" writer.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":109,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":110,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":111,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":112,"author":{"gitId":"TeoHaoZhi"},"content":" public int run() throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":113,"author":{"gitId":"TeoHaoZhi"},"content":" String choice \u003d showWelcomeMessage();","lastModifiedDate":"2023-10-11"},{"lineNumber":114,"author":{"gitId":"TeoHaoZhi"},"content":" if (choice.equals(\"1\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":115,"author":{"gitId":"TeoHaoZhi"},"content":" newUserCreator();","lastModifiedDate":"2023-10-11"},{"lineNumber":116,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":117,"author":{"gitId":"TeoHaoZhi"},"content":" } else if (choice.equals(\"2\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":118,"author":{"gitId":"TeoHaoZhi"},"content":" loginExistingUser();","lastModifiedDate":"2023-10-11"},{"lineNumber":119,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":120,"author":{"gitId":"TeoHaoZhi"},"content":" return 0;","lastModifiedDate":"2023-10-11"},{"lineNumber":121,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":122,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":123,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":124,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"TeoHaoZhi":124}},{"path":"src/main/java/seedu/stocker/commands/AddCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":" * Adds a drug into the inventory","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"public class AddCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"add\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Adds a new drug to the drug list. \"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" + \"Parameters: NAME, EXPIRY DATE, QUANTITY, \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" + \" /n Doliprane /d 12/06/2035 /q 52\";","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_SUCCESS \u003d \"New drug added in the inventory: %1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" private final Drug toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" public AddCommand(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" this.toAdd \u003d new Drug(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" public Drug getDrug() {","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" return this.toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" inventory.addDrug(toAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd.name));","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":33,"TeoHaoZhi":1}},{"path":"src/main/java/seedu/stocker/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"public abstract class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" protected Inventory inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" protected Command() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" public void setData(Inventory inventory) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" this.inventory \u003d inventory;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" * Executes the command and returns the result.","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" public abstract CommandResult execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":22}},{"path":"src/main/java/seedu/stocker/commands/CommandResult.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import java.util.Optional;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" * Represents the result of a command execution.","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"public class CommandResult {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" /** The feedback message to be shown to the user. Contains a description of the execution result */","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" public final String feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" /** The list of drugs that was produced by the command */","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" private final List\u003cDrug\u003e relevantDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public CommandResult(String feedbackToUser) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" relevantDrugs \u003d null;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" public CommandResult(String feedbackToUser, List\u003cDrug\u003e relevantDrugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" this.relevantDrugs \u003d relevantDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" * Returns a list of drugs that was produced by the command, if any.","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" public Optional\u003cList\u003cDrug\u003e\u003e getRelevantDrugs() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" return Optional.ofNullable(relevantDrugs);","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":36}},{"path":"src/main/java/seedu/stocker/commands/DeleteCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class DeleteCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"delete\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Removes a drug from drug list. \"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Parameters: Name \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" + \" \u003cDrug Name\u003e\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_SUCCESS \u003d \"Drug removed from inventory: %1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" //Edit functions below to give delete functionality","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" // public AddCommand(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" // this.toAdd \u003d new Drug(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" // }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" // public Drug getDrug() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" // return this.toAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" // }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" //edit function to replace placeholder","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(String.format(MESSAGE_SUCCESS, inventory.allDrugs));","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":32}},{"path":"src/main/java/seedu/stocker/commands/ExitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Terminates the program.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"bye\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Exits the program.\\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_EXIT_ACKNOWEDGEMENT \u003d \"Exiting Stocker as requested ...\";","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(MESSAGE_EXIT_ACKNOWEDGEMENT);","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public static boolean isExit(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" return command instanceof ExitCommand; // instanceof returns false if it is null","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":22}},{"path":"src/main/java/seedu/stocker/commands/FindCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class FindCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"find\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Finds drug in inventory \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD + \" panadol\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" //edit function to give find functionality","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":20}},{"path":"src/main/java/seedu/stocker/commands/HelpCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Shows help instructions.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class HelpCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String COMMAND_WORD \u003d \"help\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + DeleteCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + FindCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":21,"TeoHaoZhi":3}},{"path":"src/main/java/seedu/stocker/commands/IncorrectCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" * Represents an incorrect command. Upon execution, produces some feedback to the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"public class IncorrectCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public final String feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" public IncorrectCommand(String feedbackToUser) {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" this.feedbackToUser \u003d feedbackToUser;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" return new CommandResult(feedbackToUser);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":20}},{"path":"src/main/java/seedu/stocker/commands/ListCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class ListCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String COMMAND_WORD \u003d \"list\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" public static final String MESSAGE_USAGE \u003d COMMAND_WORD + \": List all drug information that is \"","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" + \"being tracked by the \"","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" + \"system. \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: \" + COMMAND_WORD;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" //Edit this func to fill in implementation of list","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" return new CommandResult(","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" AddCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + HelpCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ListCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" + \"\\n\" + ExitCommand.MESSAGE_USAGE","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"TeoHaoZhi":26}},{"path":"src/main/java/seedu/stocker/common/Messages.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.common;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":" * Container for user visible messages.","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"public class Messages {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_WELCOME \u003d \"Welcome to your Stocker!\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_GOODBYE \u003d \"Good bye!\";","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" public static final String MESSAGE_INVALID_COMMAND_FORMAT \u003d \"Invalid command format! \\n%1$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":11}},{"path":"src/main/java/seedu/stocker/drugs/Drug.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.drugs;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class Drug {","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":" public String name;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":" String expiryDate;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":" Long quantity;","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public Drug(String name, String expiryDate, Long quantity) {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" this.name \u003d name;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" this.expiryDate \u003d expiryDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" this.quantity \u003d quantity;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":4,"TeoHaoZhi":12}},{"path":"src/main/java/seedu/stocker/drugs/Inventory.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.drugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"public class Inventory {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":" public ArrayList\u003cDrug\u003e allDrugs;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":" public Inventory() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":" this.allDrugs \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" public void addDrug(Drug drug) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" this.allDrugs.add(drug);","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":16}},{"path":"src/main/java/seedu/stocker/exceptions/StockerException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.exceptions;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"public class StockerException extends Exception{","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"TeoHaoZhi":4}},{"path":"src/main/java/seedu/stocker/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.AddCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.HelpCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.IncorrectCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_INVALID_COMMAND_FORMAT;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"public class Parser {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" * Parses user input into command for execution.","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" * @param userInput full user input string","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":" * @return the command based on the user input","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":" String[] words \u003d userInput.trim().split(\" \", 2); // split the input into command and arguments","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" if (words.length \u003d\u003d 0) {","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":" final String commandWord \u003d words[0];","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" final String arguments \u003d userInput.replaceFirst(commandWord, \"\").trim();","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":" switch (commandWord) {","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" case AddCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":" return prepareAddCommand(arguments);","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" case ExitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":" return new ExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" case HelpCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" return new HelpCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" default:","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"martinschnder"},"content":" * Parses arguments in the context of the add drug command.","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"martinschnder"},"content":" * @param args full command args string","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"martinschnder"},"content":" * @return the prepared command","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"martinschnder"},"content":" private Command prepareAddCommand(String args) {","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"martinschnder"},"content":" Pattern pattern \u003d Pattern.compile(\"/n (.*) /d (.*) /q (.*)\");","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"martinschnder"},"content":" Matcher matcher \u003d pattern.matcher(args);","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"martinschnder"},"content":" if (matcher.matches() \u0026\u0026 matcher.groupCount() \u003d\u003d 3) {","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"martinschnder"},"content":" String name \u003d matcher.group(1);","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"martinschnder"},"content":" String expiryDate \u003d matcher.group(2);","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"martinschnder"},"content":" Long quantity \u003d Long.parseLong(matcher.group(3));","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"martinschnder"},"content":" return new AddCommand(name, expiryDate, quantity);","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"martinschnder"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"martinschnder"},"content":" return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE));","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":63,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":65}},{"path":"src/main/java/seedu/stocker/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.storage;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.BufferedWriter;","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"public class Storage {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" private static void writeToFile(String filePath, String textToAdd) throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" FileWriter fw \u003d new FileWriter(filePath);","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":" fw.write(textToAdd);","lastModifiedDate":"2023-10-11"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" fw.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" private static void appendToFile(String filePath, String textToAppend,String textToAppend2) throws IOException {","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" BufferedWriter bf \u003d new BufferedWriter(new FileWriter(filePath));","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" bf.write(textToAppend);","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" bf.write(textToAppend2);","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" bf.newLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" bf.close();","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"martinschnder":4,"TeoHaoZhi":20}},{"path":"src/main/java/seedu/stocker/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"import java.io.InputStream;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"import java.util.Optional;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Drug;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.commands.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_WELCOME;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":"import static seedu.stocker.common.Messages.MESSAGE_GOODBYE;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":"public class Ui {","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" /** Offset required to convert between 1-indexing and 0-indexing. */","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":" public static final int DISPLAYED_INDEX_OFFSET \u003d 1;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"martinschnder"},"content":" /** A decorative prefix added to the beginning of lines printed by Jerry */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"martinschnder"},"content":" private static final String LINE_PREFIX \u003d \"|| \";","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"martinschnder"},"content":" private static final String DIVIDER \u003d \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\";","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"martinschnder"},"content":" /** A platform independent line separator. */","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"martinschnder"},"content":" private static final String LS \u003d System.lineSeparator();","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"martinschnder"},"content":" /** Format of indexed list item */","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"martinschnder"},"content":" private static final String MESSAGE_INDEXED_LIST_ITEM \u003d \"\\t%1$d. %2$s\";","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"martinschnder"},"content":" private final Scanner in;","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"martinschnder"},"content":" private final PrintStream out;","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":" public Ui() {","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"martinschnder"},"content":" this(System.in, System.out);","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"martinschnder"},"content":" public Ui(InputStream in, PrintStream out) {","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"martinschnder"},"content":" this.in \u003d new Scanner(in);","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"martinschnder"},"content":" this.out \u003d out;","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":" public void printversion1Help(){","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Here are a list of possible commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"1. add - Add a drug into the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"2. delete - Remove a drug from the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"3. list - List all current drugs in the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"4. find - Find a specific drug in the system\");","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"5. help - List all available commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"Here is the formatting for the commands\");","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For add:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"add /n \u003cdrug name\u003e /d \u003cexpiry date\u003e /q \u003cquantity\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For delete:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"delete /n \u003cdrug name\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":63,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For list:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"list\");","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":71,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For find:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":72,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"find \u003ckeyword\u003e\");","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println();","lastModifiedDate":"2023-10-08"},{"lineNumber":74,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":75,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"For help:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"TeoHaoZhi"},"content":" System.out.println(\"help\");","lastModifiedDate":"2023-10-08"},{"lineNumber":78,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"TeoHaoZhi"},"content":" ","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":82,"author":{"gitId":"martinschnder"},"content":" * Prompts for the command and reads the text entered by the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":83,"author":{"gitId":"martinschnder"},"content":" * Ignores empty, pure whitespace, and comment lines.","lastModifiedDate":"2023-10-09"},{"lineNumber":84,"author":{"gitId":"martinschnder"},"content":" * Echos the command back to the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":85,"author":{"gitId":"martinschnder"},"content":" * @return command (full line) entered by the user","lastModifiedDate":"2023-10-09"},{"lineNumber":86,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":87,"author":{"gitId":"martinschnder"},"content":" public String getUserCommand() {","lastModifiedDate":"2023-10-09"},{"lineNumber":88,"author":{"gitId":"martinschnder"},"content":" out.print(LINE_PREFIX + \"Enter command: \");","lastModifiedDate":"2023-10-09"},{"lineNumber":89,"author":{"gitId":"martinschnder"},"content":" String fullInputLine \u003d in.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":90,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":91,"author":{"gitId":"martinschnder"},"content":" return fullInputLine;","lastModifiedDate":"2023-10-09"},{"lineNumber":92,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":93,"author":{"gitId":"TeoHaoZhi"},"content":" ","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"martinschnder"},"content":" /** Shows message(s) to the user */","lastModifiedDate":"2023-10-09"},{"lineNumber":95,"author":{"gitId":"martinschnder"},"content":" public void showToUser(String... message) {","lastModifiedDate":"2023-10-09"},{"lineNumber":96,"author":{"gitId":"martinschnder"},"content":" for (String m : message) {","lastModifiedDate":"2023-10-09"},{"lineNumber":97,"author":{"gitId":"martinschnder"},"content":" out.println(LINE_PREFIX + m.replace(\"\\n\", LS + LINE_PREFIX));","lastModifiedDate":"2023-10-09"},{"lineNumber":98,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":99,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":100,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":101,"author":{"gitId":"martinschnder"},"content":" public void showWelcomeMessage() {","lastModifiedDate":"2023-10-09"},{"lineNumber":102,"author":{"gitId":"martinschnder"},"content":" showToUser(MESSAGE_WELCOME, DIVIDER, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":103,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":104,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"martinschnder"},"content":" public void showGoodbyeMessage() {","lastModifiedDate":"2023-10-09"},{"lineNumber":106,"author":{"gitId":"martinschnder"},"content":" showToUser(MESSAGE_GOODBYE, DIVIDER, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":107,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":108,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":109,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":110,"author":{"gitId":"martinschnder"},"content":" * Shows the result of a command execution to the user. Includes additional formatting to demarcate different","lastModifiedDate":"2023-10-09"},{"lineNumber":111,"author":{"gitId":"martinschnder"},"content":" * command execution segments.","lastModifiedDate":"2023-10-09"},{"lineNumber":112,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":113,"author":{"gitId":"martinschnder"},"content":" public void showResultToUser(CommandResult result) {","lastModifiedDate":"2023-10-09"},{"lineNumber":114,"author":{"gitId":"martinschnder"},"content":" final Optional\u003cList\u003cDrug\u003e\u003e resultDrugs \u003d result.getRelevantDrugs();","lastModifiedDate":"2023-10-09"},{"lineNumber":115,"author":{"gitId":"martinschnder"},"content":" if (resultDrugs.isPresent()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":116,"author":{"gitId":"martinschnder"},"content":" showDrugListView(resultDrugs.get());","lastModifiedDate":"2023-10-09"},{"lineNumber":117,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":118,"author":{"gitId":"martinschnder"},"content":" showToUser(result.feedbackToUser, DIVIDER);","lastModifiedDate":"2023-10-09"},{"lineNumber":119,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":120,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":121,"author":{"gitId":"martinschnder"},"content":" /** Shows a list of strings to the user, formatted as an indexed list. */","lastModifiedDate":"2023-10-09"},{"lineNumber":122,"author":{"gitId":"martinschnder"},"content":" private void showToUserAsIndexedList(List\u003cString\u003e list) {","lastModifiedDate":"2023-10-09"},{"lineNumber":123,"author":{"gitId":"martinschnder"},"content":" showToUser(getIndexedListForViewing(list));","lastModifiedDate":"2023-10-09"},{"lineNumber":124,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":125,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":126,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":127,"author":{"gitId":"martinschnder"},"content":" * Shows a list of drugs to the user, formatted as an indexed list.","lastModifiedDate":"2023-10-09"},{"lineNumber":128,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":129,"author":{"gitId":"martinschnder"},"content":" private void showDrugListView(List\u003cDrug\u003e drugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":130,"author":{"gitId":"martinschnder"},"content":" final List\u003cString\u003e formattedDrugs \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":131,"author":{"gitId":"martinschnder"},"content":" for (Drug drug : drugs) {","lastModifiedDate":"2023-10-09"},{"lineNumber":132,"author":{"gitId":"martinschnder"},"content":" formattedDrugs.add(drug.toString());","lastModifiedDate":"2023-10-09"},{"lineNumber":133,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":134,"author":{"gitId":"martinschnder"},"content":" showToUserAsIndexedList(formattedDrugs);","lastModifiedDate":"2023-10-09"},{"lineNumber":135,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":136,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":137,"author":{"gitId":"martinschnder"},"content":" /** Formats a list of strings as a viewable indexed list. */","lastModifiedDate":"2023-10-09"},{"lineNumber":138,"author":{"gitId":"martinschnder"},"content":" public static String getIndexedListForViewing(List\u003cString\u003e listItems) {","lastModifiedDate":"2023-10-10"},{"lineNumber":139,"author":{"gitId":"martinschnder"},"content":" final StringBuilder formatted \u003d new StringBuilder();","lastModifiedDate":"2023-10-09"},{"lineNumber":140,"author":{"gitId":"martinschnder"},"content":" int displayIndex \u003d DISPLAYED_INDEX_OFFSET;","lastModifiedDate":"2023-10-09"},{"lineNumber":141,"author":{"gitId":"martinschnder"},"content":" for (String listItem : listItems) {","lastModifiedDate":"2023-10-09"},{"lineNumber":142,"author":{"gitId":"martinschnder"},"content":" formatted.append(getIndexedListItem(displayIndex, listItem)).append(LS);","lastModifiedDate":"2023-10-11"},{"lineNumber":143,"author":{"gitId":"martinschnder"},"content":" displayIndex++;","lastModifiedDate":"2023-10-09"},{"lineNumber":144,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":145,"author":{"gitId":"martinschnder"},"content":" return formatted.toString();","lastModifiedDate":"2023-10-09"},{"lineNumber":146,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":147,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":148,"author":{"gitId":"martinschnder"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":149,"author":{"gitId":"martinschnder"},"content":" * Formats a string as a viewable indexed list item.","lastModifiedDate":"2023-10-09"},{"lineNumber":150,"author":{"gitId":"martinschnder"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":151,"author":{"gitId":"martinschnder"},"content":" * @param visibleIndex visible index for this listing","lastModifiedDate":"2023-10-09"},{"lineNumber":152,"author":{"gitId":"martinschnder"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":153,"author":{"gitId":"martinschnder"},"content":" private static String getIndexedListItem(int visibleIndex, String listItem) {","lastModifiedDate":"2023-10-09"},{"lineNumber":154,"author":{"gitId":"martinschnder"},"content":" return String.format(MESSAGE_INDEXED_LIST_ITEM, visibleIndex, listItem);","lastModifiedDate":"2023-10-09"},{"lineNumber":155,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":156,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":157,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":104,"TeoHaoZhi":53}},{"path":"src/test/java/seedu/stocker/StockerTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"class StockerTest {","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"TeoHaoZhi":2,"-":10}},{"path":"src/test/java/seedu/stocker/commands/AddCommandTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"martinschnder"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"martinschnder"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import seedu.stocker.drugs.Inventory;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"martinschnder"},"content":"class AddCommandTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"martinschnder"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"martinschnder"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"martinschnder"},"content":" public void executeTest() {","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"martinschnder"},"content":" AddCommand command \u003d new AddCommand(\"Paracetamol\", \"12/05/2024\", 12L); ","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"martinschnder"},"content":" command.setData(new Inventory());","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"martinschnder"},"content":" String expectedOutput \u003d \"New drug added in the inventory: Paracetamol\";","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"martinschnder"},"content":" assertEquals(command.execute().feedbackToUser, new CommandResult(expectedOutput).feedbackToUser);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"martinschnder"},"content":" assertEquals(command.execute().getRelevantDrugs(), new CommandResult(expectedOutput).getRelevantDrugs());","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"martinschnder"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"martinschnder":19}},{"path":"src/test/java/seedu/stocker/commands/HelpCommandTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"TeoHaoZhi"},"content":"package seedu.stocker.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"TeoHaoZhi"},"content":"class HelpCommandTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"TeoHaoZhi"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":" public void executeTest() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":" HelpCommand command \u003d new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":" String expectedOutput \u003d \"add: Adds a new drug to the drug list. Parameters: NAME, EXPIRY DATE, QUANTITY, \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: add /n Doliprane /d 12/06/2035 /q 52\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" + \"delete: Removes a drug from drug list. Parameters: Name \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: delete \u003cDrug Name\u003e\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" + \"help: Shows program usage instructions. \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: help\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":" + \"list: List all drug information that is being tracked by the system. \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: list\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" + \"find: Finds drug in inventory \\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: find panadol\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" + \"bye: Exits the program.\\n\"","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Example: bye\";","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" assertEquals( new CommandResult(expectedOutput).feedbackToUser,command.execute().feedbackToUser);","lastModifiedDate":"2023-10-11"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"TeoHaoZhi":27}},{"path":"src/test/java/seedu/stocker/ui/UiTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"martinschnder"},"content":"package seedu.stocker.ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"TeoHaoZhi"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.ByteArrayOutputStream;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"TeoHaoZhi"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"martinschnder"},"content":"import java.util.List;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"martinschnder"},"content":"import java.util.Arrays;","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"TeoHaoZhi"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"TeoHaoZhi"},"content":"class UiTest {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"TeoHaoZhi"},"content":" @Test","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"TeoHaoZhi"},"content":" public void printVersion1HelpTest() {","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"TeoHaoZhi"},"content":" ByteArrayOutputStream outContent \u003d new ByteArrayOutputStream();","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"TeoHaoZhi"},"content":" System.setOut(new PrintStream(outContent));","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"TeoHaoZhi"},"content":" Ui toTest \u003d new Ui();","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"TeoHaoZhi"},"content":" toTest.printversion1Help();","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"TeoHaoZhi"},"content":" String expectedOutput \u003d \"Here are a list of possible commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"TeoHaoZhi"},"content":" + \"1. add - Add a drug into the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"TeoHaoZhi"},"content":" + \"2. delete - Remove a drug from the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"TeoHaoZhi"},"content":" + \"3. list - List all current drugs in the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"TeoHaoZhi"},"content":" + \"4. find - Find a specific drug in the system\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"TeoHaoZhi"},"content":" + \"5. help - List all available commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"TeoHaoZhi"},"content":" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"TeoHaoZhi"},"content":" + \"Here is the formatting for the commands\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For add:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"TeoHaoZhi"},"content":" + \"add /n \u003cdrug name\u003e /d \u003cexpiry date\u003e /q \u003cquantity\u003e\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"TeoHaoZhi"},"content":" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For delete:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"TeoHaoZhi"},"content":" + \"delete /n \u003cdrug name\u003e\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For list:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"TeoHaoZhi"},"content":" + \"list\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For find:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"TeoHaoZhi"},"content":" + \"find \u003ckeyword\u003e\" + System.getProperty(\"line.separator\") + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"TeoHaoZhi"},"content":" + \"For help:\" + System.getProperty(\"line.separator\")","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"TeoHaoZhi"},"content":" + \"help\" + System.getProperty(\"line.separator\");","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"TeoHaoZhi"},"content":" assertEquals(expectedOutput, outContent.toString());","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"TeoHaoZhi"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"martinschnder"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"martinschnder"},"content":" public void getIndexedListForViewing_success() {","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"martinschnder"},"content":" String expectedOutput \u003d \"\\t1. Paracetamol\" + System.lineSeparator()","lastModifiedDate":"2023-10-11"},{"lineNumber":50,"author":{"gitId":"martinschnder"},"content":" + \"\\t2. Ibuprofene\" + System.lineSeparator()","lastModifiedDate":"2023-10-11"},{"lineNumber":51,"author":{"gitId":"martinschnder"},"content":" + \"\\t3. Doliprane\" + System.lineSeparator();","lastModifiedDate":"2023-10-11"},{"lineNumber":52,"author":{"gitId":"TeoHaoZhi"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"martinschnder"},"content":" List\u003cString\u003e input \u003d Arrays.asList(\"Paracetamol\", \"Ibuprofene\", \"Doliprane\");","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"martinschnder"},"content":" assertEquals(expectedOutput, new Ui().getIndexedListForViewing(input));","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"martinschnder"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":56,"author":{"gitId":"TeoHaoZhi"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"martinschnder":11,"TeoHaoZhi":45}}] diff --git a/AY2324S1-CS2113-T17-3_tp_master/commits.json b/AY2324S1-CS2113-T17-3_tp_master/commits.json index 9548b8f..1c70eb2 100644 --- a/AY2324S1-CS2113-T17-3_tp_master/commits.json +++ b/AY2324S1-CS2113-T17-3_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"karishma-t":[{"date":"2023-10-05","commitResults":[{"hash":"9b179211347fe7a0942693aea92a880a72243999","isMergeCommit":false,"messageTitle":"Add files for Karishma about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":9,"deletions":4}}},{"hash":"ec15853438ef4adb88f2bbcc87f367804d35788d","isMergeCommit":false,"messageTitle":"Conflict resolution","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":3,"deletions":2}}}]}],"martinschnder":[{"date":"2023-10-07","commitResults":[{"hash":"d13e4519f0e878a3e9be46a05a57ee90c57539c8","isMergeCommit":false,"messageTitle":"Add martin portofolio and picture and update about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":1}}},{"hash":"2dbd0893fe8f3dac09ed84bb33c414c0e90c74e2","isMergeCommit":true,"messageTitle":"Merge pull request #12 from martinschnder/martin-AboutUs","messageBody":"Add martin portofolio and picture and update about us","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"eca592d2600d2253010eebbf55c4217a971ca79b","isMergeCommit":false,"messageTitle":"Updated build.gradle to match new main class name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":2,"deletions":2}}},{"hash":"f9bf0f4dcbf0dc02f210e21283f8f18ddf745d2a","isMergeCommit":false,"messageTitle":"Reorganize files in various packages","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":21,"deletions":9},"other":{"insertions":2,"deletions":2}}},{"hash":"dd4cb2baf5df643afbefe71a963a78e7489a79b2","isMergeCommit":false,"messageTitle":"Create abstract command class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":0}}},{"hash":"0a4ae29a7ca56b747974f29fc720e496c0cebaa3","isMergeCommit":false,"messageTitle":"Add the addclass and rename the druglist class to inventory","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":101,"deletions":19}}},{"hash":"9891fe1ce7e876b766da0e19a647588a3845d02d","isMergeCommit":false,"messageTitle":"Delete old file","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":0,"deletions":14}}},{"hash":"c76880c8d3ba9f7555f17105e6689822950877aa","isMergeCommit":false,"messageTitle":"Implement ExitCommand and AddCommand","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":316,"deletions":18}}}]}],"azfarulmatin":[{"date":"2023-10-07","commitResults":[{"hash":"6c8ee942babd12a205caa1b7e098fcb6340f76a9","isMergeCommit":false,"messageTitle":"Update Azfarul About us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}},{"hash":"05e7ef8ec96488ea4719dfc0372532fe8e5694de","isMergeCommit":true,"messageTitle":"Merge pull request #19 from azfarulmatin/master","messageBody":"Update Azfarul About us","fileTypesAndContributionMap":{}}]}],"TeoHaoZhi":[{"date":"2023-10-05","commitResults":[{"hash":"f2bef309abc1a31812e5cb92d52cc3edc1ea44c6","isMergeCommit":false,"messageTitle":"Update UserGuide.md to add theme","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":0}}},{"hash":"80b42e7c9d1a437ae8bed5f38e44c218f440f47c","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Barbaracwx/Barbaracwx-AboutUs","messageBody":"Added Barbara.md","fileTypesAndContributionMap":{}},{"hash":"aa9ba0c6a59865a89b52a6f53b7df1df57bb99de","isMergeCommit":false,"messageTitle":"Add files for Hao Zhi\u0027s about us page","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}},{"hash":"78381da48ea0ab8048ffca83fc47af7dd59e458b","isMergeCommit":true,"messageTitle":"Merge branch \u0027HaoZhi-AboutUs\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c0c3018bd7af6a34e46ede0867b55d0a498285ce","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5034d288227d95c1a28ecc2359f1ea357dd3b437","isMergeCommit":true,"messageTitle":"Merge pull request #3 from TeoHaoZhi/master","messageBody":"Add HaoZhi\u0027s about us files","fileTypesAndContributionMap":{}},{"hash":"88803a7aec4b841305b2a7716850e466193ec107","isMergeCommit":false,"messageTitle":"Clean up UserGuide","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":0,"deletions":2}}}]},{"date":"2023-10-06","commitResults":[{"hash":"220ea22f86c3d933219eefa1ae6e0c2fabea1d44","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into karishma-AboutUs","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"800151596e695fdfd13c417def35fd80dc78fed4","isMergeCommit":true,"messageTitle":"Merge pull request #10 from karishma-t/karishma-AboutUs","messageBody":"Add Karishma about us","fileTypesAndContributionMap":{}},{"hash":"4a53af6054886017e9cf732a597960c970f202d4","isMergeCommit":false,"messageTitle":"Fix about us portfolio bug","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":2}}},{"hash":"eb792a86d1eb0fd6ea4e2bca18a1ed4e10c07661","isMergeCommit":true,"messageTitle":"Merge pull request #11 from TeoHaoZhi/master","messageBody":"Fix about us portfolio bug","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"090f7fd2112203bcd0f818c6a79ab83c1945118e","isMergeCommit":false,"messageTitle":"Rename classes","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":4,"deletions":4}}},{"hash":"cd37b8a6e9414c1fa24b68559ff23066fde03931","isMergeCommit":true,"messageTitle":"Merge pull request #23 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Rename classes","fileTypesAndContributionMap":{}},{"hash":"293aa145c39d8d91f975a08e7f0c8f491234cd7e","isMergeCommit":false,"messageTitle":"Add dummy classes","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":24,"deletions":0}}},{"hash":"3d5504d42b2532eadb56b49ff210b09cdd50284c","isMergeCommit":true,"messageTitle":"Merge pull request #24 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add dummy classes","fileTypesAndContributionMap":{}},{"hash":"d842866453c774e4e7cb523fc0f6d99109564fbb","isMergeCommit":false,"messageTitle":"Add attributes to drug class","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1},"test-code":{"insertions":46,"deletions":20}}},{"hash":"7988e7aab82f83af8ed057426371bc9f8066e5c2","isMergeCommit":true,"messageTitle":"Merge pull request #25 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add attributes to drug class","fileTypesAndContributionMap":{}},{"hash":"1746b905d7c8f9941ce95abe0c601ed7a555d341","isMergeCommit":false,"messageTitle":"Add help feature to UI class","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":42,"deletions":1}}},{"hash":"227af0572b033254d6546284a0ee2f875a71c3a9","isMergeCommit":true,"messageTitle":"Merge pull request #26 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add help feature to UI class","fileTypesAndContributionMap":{}},{"hash":"7299b86db5d860ab190c91abd4c6962273b196cd","isMergeCommit":false,"messageTitle":"Add exit point for programme","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":58,"deletions":11},"other":{"insertions":0,"deletions":0},"test-code":{"insertions":0,"deletions":49}}},{"hash":"de4799c7421e4b4195b2576cd2425462d6a6fa0e","isMergeCommit":true,"messageTitle":"Merge pull request #27 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add exit point for programme","fileTypesAndContributionMap":{}},{"hash":"354c79d2f7cbb08fb7700ca95ef4ca362f2c172d","isMergeCommit":false,"messageTitle":"Refactor printing for help command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":29,"deletions":24}}},{"hash":"8ab6c94c4d553c98bdc4616b2841d95fea09e2e7","isMergeCommit":true,"messageTitle":"Merge pull request #28 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Refactor printing for help command","fileTypesAndContributionMap":{}},{"hash":"5bf20560cb92c584383123cf1ba209e1943da17b","isMergeCommit":false,"messageTitle":"Add Junit test for help feature","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":5},"test-code":{"insertions":47,"deletions":0}}},{"hash":"0cce6790d3939b1aa5f6309f8c81e87f8490dceb","isMergeCommit":true,"messageTitle":"Merge pull request #29 from TeoHaoZhi/HaoZhi-JUnitTestForHelpFeature","messageBody":"Add Junit test for help feature","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"44f897c607a7bf71459ce63ef7a22368d8374d2c","isMergeCommit":true,"messageTitle":"Merge pull request #30 from martinschnder/branch-AddCommand","messageBody":"Branch add command","fileTypesAndContributionMap":{}},{"hash":"38f4573bdbf922271274ff418303a83c5ba9778e","isMergeCommit":false,"messageTitle":"Add more class templates","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":82,"deletions":22}}},{"hash":"7ab218bb640ddf7a60822ecd133989bcd0d2a220","isMergeCommit":true,"messageTitle":"Merge pull request #31 from TeoHaoZhi/HaoZhi-ListCommandHelp","messageBody":"Add more class templates","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"e366c56327163c3ebdcc63a2889b90ea43218e50","isMergeCommit":false,"messageTitle":"Update userguide markdown file","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":154,"deletions":12}}},{"hash":"67f9f7118ed7fe8c06884e7757e87e6c634fa6d8","isMergeCommit":true,"messageTitle":"Merge pull request #32 from TeoHaoZhi/HaoZhi-UserGuideUpdateV1.0","messageBody":"Update userguide markdown file","fileTypesAndContributionMap":{}},{"hash":"b6fd34963d346c40de9d71cb9ea43699a14d4b8d","isMergeCommit":false,"messageTitle":"Update README","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":5,"deletions":2}}},{"hash":"a3f768d82e7036ec93e0543e7c2db1847279aa1c","isMergeCommit":true,"messageTitle":"Merge pull request #33 from TeoHaoZhi/HaoZhi-ReadMe","messageBody":"Update README","fileTypesAndContributionMap":{}},{"hash":"dc4311ad9d1840486a71ba7958140542108c093a","isMergeCommit":false,"messageTitle":"Add Junit test for help command","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":29,"deletions":0}}},{"hash":"324c68f05643be382892df3fec2ec0d7ea16d361","isMergeCommit":false,"messageTitle":"Fix checkstyle violation","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":3,"deletions":5}}},{"hash":"7a54cf286c00c3cf7864d2bc4859e14c0e4c9a4d","isMergeCommit":true,"messageTitle":"Merge pull request #35 from TeoHaoZhi/HaoZhi-JUnitTestForHelpFeature","messageBody":"Add Junit test for help command","fileTypesAndContributionMap":{}}]}],"Barbaracwx":[{"date":"2023-10-05","commitResults":[{"hash":"91e8e21dc2263c8657a5df7cb911512e24f1bf43","isMergeCommit":false,"messageTitle":"Added Barbara.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}}]}]},"authorFileTypeContributionMap":{"karishma-t":{"docs":6,"functional-code":0,"test-code":0},"martinschnder":{"docs":6,"functional-code":416,"test-code":1,"other":2},"azfarulmatin":{"docs":8,"functional-code":0,"test-code":0},"TeoHaoZhi":{"docs":165,"functional-code":153,"test-code":75},"Barbaracwx":{"docs":6,"functional-code":0,"test-code":0}},"authorContributionVariance":{"karishma-t":16.155128,"martinschnder":13464.825,"azfarulmatin":19.9446,"TeoHaoZhi":9041.523,"Barbaracwx":19.944597},"authorDisplayNameMap":{"karishma-t":"CS2113-T17-3 KARI..ARAN","martinschnder":"CS2113-T17-3 SCHN..ILLE","azfarulmatin":"CS2113-T17-3 AZFA..ANDI","TeoHaoZhi":"CS2113-T17-3 TEO .. ZHI","Barbaracwx":"CS2113-T17-3 CHON..BARA"}} +{"authorDailyContributionsMap":{"karishma-t":[{"date":"2023-10-05","commitResults":[{"hash":"9b179211347fe7a0942693aea92a880a72243999","isMergeCommit":false,"messageTitle":"Add files for Karishma about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":9,"deletions":4}}},{"hash":"ec15853438ef4adb88f2bbcc87f367804d35788d","isMergeCommit":false,"messageTitle":"Conflict resolution","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":3,"deletions":2}}}]}],"martinschnder":[{"date":"2023-10-07","commitResults":[{"hash":"d13e4519f0e878a3e9be46a05a57ee90c57539c8","isMergeCommit":false,"messageTitle":"Add martin portofolio and picture and update about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":1}}},{"hash":"2dbd0893fe8f3dac09ed84bb33c414c0e90c74e2","isMergeCommit":true,"messageTitle":"Merge pull request #12 from martinschnder/martin-AboutUs","messageBody":"Add martin portofolio and picture and update about us","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"eca592d2600d2253010eebbf55c4217a971ca79b","isMergeCommit":false,"messageTitle":"Updated build.gradle to match new main class name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":2,"deletions":2}}},{"hash":"f9bf0f4dcbf0dc02f210e21283f8f18ddf745d2a","isMergeCommit":false,"messageTitle":"Reorganize files in various packages","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":21,"deletions":9},"other":{"insertions":2,"deletions":2}}},{"hash":"dd4cb2baf5df643afbefe71a963a78e7489a79b2","isMergeCommit":false,"messageTitle":"Create abstract command class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":0}}},{"hash":"0a4ae29a7ca56b747974f29fc720e496c0cebaa3","isMergeCommit":false,"messageTitle":"Add the addclass and rename the druglist class to inventory","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":101,"deletions":19}}},{"hash":"9891fe1ce7e876b766da0e19a647588a3845d02d","isMergeCommit":false,"messageTitle":"Delete old file","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":0,"deletions":14}}},{"hash":"c76880c8d3ba9f7555f17105e6689822950877aa","isMergeCommit":false,"messageTitle":"Implement ExitCommand and AddCommand","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":316,"deletions":18}}}]},{"date":"2023-10-10","commitResults":[{"hash":"dce79f9038b5eade80126270475b9775283d2fd2","isMergeCommit":false,"messageTitle":"Add ui and addcommand testing","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1},"test-code":{"insertions":29,"deletions":1}}}]},{"date":"2023-10-11","commitResults":[{"hash":"8910d7979fdebe5386871de9ea2cda42c5161370","isMergeCommit":false,"messageTitle":"Change the line separator character","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":3,"deletions":3}}},{"hash":"d0a83e9fe5ed5a7cc13594979f0803fa8e9a2374","isMergeCommit":false,"messageTitle":"Change the line separator character in the UI class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"55d760266b318ad23fbab35a6d1857c73c063d17","isMergeCommit":true,"messageTitle":"Merge pull request #34 from martinschnder/addDrug-unit-tests","messageBody":"Add ui and addcommand testing","fileTypesAndContributionMap":{}}]}],"azfarulmatin":[{"date":"2023-10-07","commitResults":[{"hash":"6c8ee942babd12a205caa1b7e098fcb6340f76a9","isMergeCommit":false,"messageTitle":"Update Azfarul About us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}},{"hash":"05e7ef8ec96488ea4719dfc0372532fe8e5694de","isMergeCommit":true,"messageTitle":"Merge pull request #19 from azfarulmatin/master","messageBody":"Update Azfarul About us","fileTypesAndContributionMap":{}}]}],"TeoHaoZhi":[{"date":"2023-10-05","commitResults":[{"hash":"f2bef309abc1a31812e5cb92d52cc3edc1ea44c6","isMergeCommit":false,"messageTitle":"Update UserGuide.md to add theme","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":0}}},{"hash":"80b42e7c9d1a437ae8bed5f38e44c218f440f47c","isMergeCommit":true,"messageTitle":"Merge pull request #2 from Barbaracwx/Barbaracwx-AboutUs","messageBody":"Added Barbara.md","fileTypesAndContributionMap":{}},{"hash":"aa9ba0c6a59865a89b52a6f53b7df1df57bb99de","isMergeCommit":false,"messageTitle":"Add files for Hao Zhi\u0027s about us page","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}},{"hash":"78381da48ea0ab8048ffca83fc47af7dd59e458b","isMergeCommit":true,"messageTitle":"Merge branch \u0027HaoZhi-AboutUs\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"c0c3018bd7af6a34e46ede0867b55d0a498285ce","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5034d288227d95c1a28ecc2359f1ea357dd3b437","isMergeCommit":true,"messageTitle":"Merge pull request #3 from TeoHaoZhi/master","messageBody":"Add HaoZhi\u0027s about us files","fileTypesAndContributionMap":{}},{"hash":"88803a7aec4b841305b2a7716850e466193ec107","isMergeCommit":false,"messageTitle":"Clean up UserGuide","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":0,"deletions":2}}}]},{"date":"2023-10-06","commitResults":[{"hash":"220ea22f86c3d933219eefa1ae6e0c2fabea1d44","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into karishma-AboutUs","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"800151596e695fdfd13c417def35fd80dc78fed4","isMergeCommit":true,"messageTitle":"Merge pull request #10 from karishma-t/karishma-AboutUs","messageBody":"Add Karishma about us","fileTypesAndContributionMap":{}},{"hash":"4a53af6054886017e9cf732a597960c970f202d4","isMergeCommit":false,"messageTitle":"Fix about us portfolio bug","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":2}}},{"hash":"eb792a86d1eb0fd6ea4e2bca18a1ed4e10c07661","isMergeCommit":true,"messageTitle":"Merge pull request #11 from TeoHaoZhi/master","messageBody":"Fix about us portfolio bug","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"090f7fd2112203bcd0f818c6a79ab83c1945118e","isMergeCommit":false,"messageTitle":"Rename classes","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":4,"deletions":4}}},{"hash":"cd37b8a6e9414c1fa24b68559ff23066fde03931","isMergeCommit":true,"messageTitle":"Merge pull request #23 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Rename classes","fileTypesAndContributionMap":{}},{"hash":"293aa145c39d8d91f975a08e7f0c8f491234cd7e","isMergeCommit":false,"messageTitle":"Add dummy classes","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":24,"deletions":0}}},{"hash":"3d5504d42b2532eadb56b49ff210b09cdd50284c","isMergeCommit":true,"messageTitle":"Merge pull request #24 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add dummy classes","fileTypesAndContributionMap":{}},{"hash":"d842866453c774e4e7cb523fc0f6d99109564fbb","isMergeCommit":false,"messageTitle":"Add attributes to drug class","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1},"test-code":{"insertions":46,"deletions":20}}},{"hash":"7988e7aab82f83af8ed057426371bc9f8066e5c2","isMergeCommit":true,"messageTitle":"Merge pull request #25 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add attributes to drug class","fileTypesAndContributionMap":{}},{"hash":"1746b905d7c8f9941ce95abe0c601ed7a555d341","isMergeCommit":false,"messageTitle":"Add help feature to UI class","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":42,"deletions":1}}},{"hash":"227af0572b033254d6546284a0ee2f875a71c3a9","isMergeCommit":true,"messageTitle":"Merge pull request #26 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add help feature to UI class","fileTypesAndContributionMap":{}},{"hash":"7299b86db5d860ab190c91abd4c6962273b196cd","isMergeCommit":false,"messageTitle":"Add exit point for programme","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":58,"deletions":11},"other":{"insertions":0,"deletions":0},"test-code":{"insertions":0,"deletions":49}}},{"hash":"de4799c7421e4b4195b2576cd2425462d6a6fa0e","isMergeCommit":true,"messageTitle":"Merge pull request #27 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Add exit point for programme","fileTypesAndContributionMap":{}},{"hash":"354c79d2f7cbb08fb7700ca95ef4ca362f2c172d","isMergeCommit":false,"messageTitle":"Refactor printing for help command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":29,"deletions":24}}},{"hash":"8ab6c94c4d553c98bdc4616b2841d95fea09e2e7","isMergeCommit":true,"messageTitle":"Merge pull request #28 from TeoHaoZhi/HaoZhi-TemplateAttempt2","messageBody":"Refactor printing for help command","fileTypesAndContributionMap":{}},{"hash":"5bf20560cb92c584383123cf1ba209e1943da17b","isMergeCommit":false,"messageTitle":"Add Junit test for help feature","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":5},"test-code":{"insertions":47,"deletions":0}}},{"hash":"0cce6790d3939b1aa5f6309f8c81e87f8490dceb","isMergeCommit":true,"messageTitle":"Merge pull request #29 from TeoHaoZhi/HaoZhi-JUnitTestForHelpFeature","messageBody":"Add Junit test for help feature","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"44f897c607a7bf71459ce63ef7a22368d8374d2c","isMergeCommit":true,"messageTitle":"Merge pull request #30 from martinschnder/branch-AddCommand","messageBody":"Branch add command","fileTypesAndContributionMap":{}},{"hash":"38f4573bdbf922271274ff418303a83c5ba9778e","isMergeCommit":false,"messageTitle":"Add more class templates","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":82,"deletions":22}}},{"hash":"7ab218bb640ddf7a60822ecd133989bcd0d2a220","isMergeCommit":true,"messageTitle":"Merge pull request #31 from TeoHaoZhi/HaoZhi-ListCommandHelp","messageBody":"Add more class templates","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"e366c56327163c3ebdcc63a2889b90ea43218e50","isMergeCommit":false,"messageTitle":"Update userguide markdown file","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":154,"deletions":12}}},{"hash":"67f9f7118ed7fe8c06884e7757e87e6c634fa6d8","isMergeCommit":true,"messageTitle":"Merge pull request #32 from TeoHaoZhi/HaoZhi-UserGuideUpdateV1.0","messageBody":"Update userguide markdown file","fileTypesAndContributionMap":{}},{"hash":"b6fd34963d346c40de9d71cb9ea43699a14d4b8d","isMergeCommit":false,"messageTitle":"Update README","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":5,"deletions":2}}},{"hash":"a3f768d82e7036ec93e0543e7c2db1847279aa1c","isMergeCommit":true,"messageTitle":"Merge pull request #33 from TeoHaoZhi/HaoZhi-ReadMe","messageBody":"Update README","fileTypesAndContributionMap":{}},{"hash":"dc4311ad9d1840486a71ba7958140542108c093a","isMergeCommit":false,"messageTitle":"Add Junit test for help command","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":29,"deletions":0}}},{"hash":"324c68f05643be382892df3fec2ec0d7ea16d361","isMergeCommit":false,"messageTitle":"Fix checkstyle violation","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":3,"deletions":5}}},{"hash":"7a54cf286c00c3cf7864d2bc4859e14c0e4c9a4d","isMergeCommit":true,"messageTitle":"Merge pull request #35 from TeoHaoZhi/HaoZhi-JUnitTestForHelpFeature","messageBody":"Add Junit test for help command","fileTypesAndContributionMap":{}}]},{"date":"2023-10-11","commitResults":[{"hash":"bac5f0f114fe6974123b6090f5bfc2ad035bbf64","isMergeCommit":false,"messageTitle":"Edit Junit test for help","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1},"test-code":{"insertions":13,"deletions":13}}},{"hash":"e5380e513c5f79d6570dca09171f3f1fc58402d2","isMergeCommit":true,"messageTitle":"Merge pull request #36 from TeoHaoZhi/HaoZhi-JUnitTestForHelpFeature","messageBody":"Edit Junit test for help","fileTypesAndContributionMap":{}},{"hash":"350fcc060811c2f4e25cb36254f2bd7845ea9338","isMergeCommit":false,"messageTitle":"Add methods to write to txt file","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":17,"deletions":0}}},{"hash":"a46e5821d0bcebdf8cc07433cfb197f7fd91490b","isMergeCommit":false,"messageTitle":"Update method to append to txt file","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":7,"deletions":4}}},{"hash":"d25c1fefd9e13e3320c18ff49032c4dfc91e93a4","isMergeCommit":false,"messageTitle":"Add login system class to handle login features","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":124,"deletions":0}}},{"hash":"366c60438a5b4307401d2af9368d4c60d28dc73f","isMergeCommit":false,"messageTitle":"Fix Checkstyle","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":8}}},{"hash":"be08c4a84413626b9f7bcc47b0264320f8ecb7bd","isMergeCommit":true,"messageTitle":"Merge pull request #37 from TeoHaoZhi/HaoZhi-LoginFeatureAttempt1","messageBody":"Add login system class","fileTypesAndContributionMap":{}}]}],"Barbaracwx":[{"date":"2023-10-05","commitResults":[{"hash":"91e8e21dc2263c8657a5df7cb911512e24f1bf43","isMergeCommit":false,"messageTitle":"Added Barbara.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":13,"deletions":7}}}]}]},"authorFileTypeContributionMap":{"karishma-t":{"docs":6,"functional-code":0,"test-code":0},"martinschnder":{"docs":6,"functional-code":416,"test-code":30,"other":2},"azfarulmatin":{"docs":8,"functional-code":0,"test-code":0},"TeoHaoZhi":{"docs":165,"functional-code":299,"test-code":74},"Barbaracwx":{"docs":6,"functional-code":0,"test-code":0}},"authorContributionVariance":{"karishma-t":15.389999,"martinschnder":12773.127,"azfarulmatin":19.0,"TeoHaoZhi":9806.247,"Barbaracwx":19.0},"authorDisplayNameMap":{"karishma-t":"CS2113-T17-3 KARI..ARAN","martinschnder":"CS2113-T17-3 SCHN..ILLE","azfarulmatin":"CS2113-T17-3 AZFA..ANDI","TeoHaoZhi":"CS2113-T17-3 TEO .. ZHI","Barbaracwx":"CS2113-T17-3 CHON..BARA"}} diff --git a/AY2324S1-CS2113-T18-3_tp_master/authorship.json b/AY2324S1-CS2113-T18-3_tp_master/authorship.json index aea79f8..0daf990 100644 --- a/AY2324S1-CS2113-T18-3_tp_master/authorship.json +++ b/AY2324S1-CS2113-T18-3_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"KenCheung18"},"content":"--------|:--------------:|:----------------------------------------:|:---------:","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"KenCheung18"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Cheung Ka Yuen | [Github](https://github.com/KenCheung18) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"KenCheung18":2,"-":7}},{"path":"docs/README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"bljhty"},"content":"# Hi","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"-"},"content":"{Give product intro here}","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"Useful links:","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"* [User Guide](UserGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"* [Developer Guide](DeveloperGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"* [About Us](AboutUs.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"bljhty":1,"-":7}}] +[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"bljhty"},"content":" implementation group: \u0027com.google.code.gson\u0027, name: \u0027gson\u0027, version: \u00272.10.1\u0027","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":33,"author":{"gitId":"-"},"content":" mainClass.set(\"seedu.duke.Duke\")","lastModifiedDate":"2023-08-05"},{"lineNumber":34,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveBaseName.set(\"duke\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":42,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":43,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":47,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"bljhty":1,"-":46}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"bljhty"},"content":"--------|:-----------------:|:----------------------------------------:|:---------:","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"KenCheung18"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Cheung Ka Yuen | [Github](https://github.com/KenCheung18) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"bljhty"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Lee Jun Hao Bryan | [Github](https://github.com/bljhty) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"bljhty":2,"KenCheung18":1,"-":6}},{"path":"docs/README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"bljhty"},"content":"# Hi","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":3,"author":{"gitId":"-"},"content":"{Give product intro here}","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2019-07-29"},{"lineNumber":5,"author":{"gitId":"-"},"content":"Useful links:","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"* [User Guide](UserGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"* [Developer Guide](DeveloperGuide.md)","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"* [About Us](AboutUs.md)","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"bljhty":1,"-":7}},{"path":"src/main/java/seedu/duke/Commands/KaChinnnngException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"bljhty"},"content":"package seedu.duke.Commands;","lastModifiedDate":"2023-10-11"},{"lineNumber":2,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"bljhty"},"content":"public class KaChinnnngException extends Exception{","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"bljhty"},"content":" public KaChinnnngException(String message) {","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"bljhty"},"content":" super(message);","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"bljhty"},"content":"}","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"bljhty":7}},{"path":"src/main/java/seedu/duke/Commands/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"bljhty"},"content":"package seedu.duke.Commands;","lastModifiedDate":"2023-10-11"},{"lineNumber":2,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"bljhty"},"content":"/*","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"bljhty"},"content":" * parser class to parse user input","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"bljhty"},"content":" */","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"bljhty"},"content":"public class Parser {","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"bljhty"},"content":" public static String parse(String fullCommand) {","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"bljhty"},"content":" String trimmedCommand \u003d fullCommand.trim();","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"bljhty"},"content":" String commandLowerCase \u003d trimmedCommand.toLowerCase();","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"bljhty"},"content":" if (commandLowerCase.equals(\"bye\")) {","lastModifiedDate":"2023-10-11"},{"lineNumber":12,"author":{"gitId":"bljhty"},"content":" return \"exit\";","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"bljhty"},"content":" return \"invalid\";","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"bljhty"},"content":"}","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"bljhty":16}},{"path":"src/main/java/seedu/duke/Duke.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"package seedu.duke;","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"bljhty"},"content":"import seedu.duke.Commands.KaChinnnngException;","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"bljhty"},"content":"import seedu.duke.Ui.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"bljhty"},"content":"import seedu.duke.Commands.Parser;","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"-"},"content":"public class Duke {","lastModifiedDate":"2019-07-29"},{"lineNumber":8,"author":{"gitId":"bljhty"},"content":" private Ui ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"bljhty"},"content":" * This method runs the program.","lastModifiedDate":"2023-10-11"},{"lineNumber":12,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"bljhty"},"content":" public void run() {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"bljhty"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"bljhty"},"content":" Ui.printWelcomeMessage();","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"bljhty"},"content":" boolean isExit \u003d false;","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"bljhty"},"content":" while (!isExit) {","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"bljhty"},"content":" try {","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"bljhty"},"content":" String fullCommand \u003d ui.readCommand();","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"bljhty"},"content":" String command \u003d Parser.parse(fullCommand);","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"bljhty"},"content":" String[] parts \u003d command.split(\"-\", 2);","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"bljhty"},"content":" switch (parts[0]) {","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"bljhty"},"content":" case \"exit\":","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"bljhty"},"content":" isExit \u003d true;","lastModifiedDate":"2023-10-11"},{"lineNumber":25,"author":{"gitId":"bljhty"},"content":" ui.showLineDivider();","lastModifiedDate":"2023-10-11"},{"lineNumber":26,"author":{"gitId":"bljhty"},"content":" break;","lastModifiedDate":"2023-10-11"},{"lineNumber":27,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":28,"author":{"gitId":"bljhty"},"content":" default:","lastModifiedDate":"2023-10-11"},{"lineNumber":29,"author":{"gitId":"bljhty"},"content":" ui.showLineDivider();","lastModifiedDate":"2023-10-11"},{"lineNumber":30,"author":{"gitId":"bljhty"},"content":" System.out.println(\"Invalid command. Please try again.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":31,"author":{"gitId":"bljhty"},"content":" ui.showLineDivider();","lastModifiedDate":"2023-10-11"},{"lineNumber":32,"author":{"gitId":"bljhty"},"content":" break;","lastModifiedDate":"2023-10-11"},{"lineNumber":33,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":34,"author":{"gitId":"bljhty"},"content":" } catch (KaChinnnngException e) {","lastModifiedDate":"2023-10-11"},{"lineNumber":35,"author":{"gitId":"bljhty"},"content":" System.out.println(e.getMessage());","lastModifiedDate":"2023-10-11"},{"lineNumber":36,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":37,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":38,"author":{"gitId":"bljhty"},"content":" ui.printGoodbyeMessage();","lastModifiedDate":"2023-10-11"},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":42,"author":{"gitId":"bljhty"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"bljhty"},"content":" new Duke().run();","lastModifiedDate":"2023-10-11"},{"lineNumber":44,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":45,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"bljhty":36,"-":10}},{"path":"src/main/java/seedu/duke/Ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"bljhty"},"content":"package seedu.duke.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"bljhty"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"bljhty"},"content":"import seedu.duke.Commands.KaChinnnngException;","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"bljhty"},"content":"//import java.util.ArrayList;","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"bljhty"},"content":"/**","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"bljhty"},"content":" * This class handles the user interface of the program.","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"bljhty"},"content":" */","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"bljhty"},"content":"public class Ui {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"bljhty"},"content":" private static final String lineDivider \u003d \"____________________________________________________________\";","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"bljhty"},"content":" public Scanner scanner;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"bljhty"},"content":" public Ui() {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"bljhty"},"content":" this.scanner \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"bljhty"},"content":" public String readCommand() throws KaChinnnngException {","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"bljhty"},"content":" if (scanner.hasNextLine()) {","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"bljhty"},"content":" return scanner.nextLine();","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"bljhty"},"content":" } else {","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"bljhty"},"content":" throw new KaChinnnngException(\"No input provided by the user.\");","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":25,"author":{"gitId":"bljhty"},"content":" public void showLineDivider() {","lastModifiedDate":"2023-10-11"},{"lineNumber":26,"author":{"gitId":"bljhty"},"content":" System.out.println(lineDivider);","lastModifiedDate":"2023-10-11"},{"lineNumber":27,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":28,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":29,"author":{"gitId":"bljhty"},"content":" public static void printWelcomeMessage() {","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"bljhty"},"content":" System.out.println(lineDivider);","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"bljhty"},"content":" System.out.println(\"Welcome to KaChinnnngggg! How may i assist you today?\");","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"bljhty"},"content":" System.out.println(lineDivider);","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"bljhty"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"bljhty"},"content":" public void printGoodbyeMessage() {","lastModifiedDate":"2023-10-11"},{"lineNumber":36,"author":{"gitId":"bljhty"},"content":" System.out.println(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"bljhty"},"content":" System.out.println(lineDivider);","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"bljhty"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"bljhty"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"bljhty":39}}] diff --git a/AY2324S1-CS2113-T18-3_tp_master/commits.json b/AY2324S1-CS2113-T18-3_tp_master/commits.json index 0d3ba1e..8643993 100644 --- a/AY2324S1-CS2113-T18-3_tp_master/commits.json +++ b/AY2324S1-CS2113-T18-3_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Zhang-Zhitong":[],"limyuhching":[],"bljhty":[{"date":"2023-10-05","commitResults":[{"hash":"3647d84668028d5ea5c84d7627894a8ef0ee48fc","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}}]}],"Hongzhii":[],"KenCheung18":[{"date":"2023-10-05","commitResults":[{"hash":"ff771b65c44f9dd8452f28d33c98131f6ebdaca3","isMergeCommit":false,"messageTitle":"AboutUs","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"169d557cd8aeb41bfc052c8baa84595ffdfb91a6","isMergeCommit":true,"messageTitle":"Merge pull request #3 from KenCheung18/AboutUs","messageBody":"AboutUs","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Zhang-Zhitong":{"docs":0,"functional-code":0,"test-code":0},"limyuhching":{"docs":0,"functional-code":0,"test-code":0},"bljhty":{"docs":1,"functional-code":0,"test-code":0},"Hongzhii":{"docs":0,"functional-code":0,"test-code":0},"KenCheung18":{"docs":2,"functional-code":0,"test-code":0}},"authorContributionVariance":{"Zhang-Zhitong":0.0,"limyuhching":0.0,"bljhty":0.26530612,"Hongzhii":0.0,"KenCheung18":13.0},"authorDisplayNameMap":{"Zhang-Zhitong":"CS2113-T18-3 ZHAN..TONG","limyuhching":"CS2113-T18-3 LIM ..HING","bljhty":"CS2113-T18-3 LEE ..RYAN","Hongzhii":"CS2113-T18-3 EE H.. ZHI","KenCheung18":"CS2113-T18-3 CHEU..YUEN"}} +{"authorDailyContributionsMap":{"Zhang-Zhitong":[],"limyuhching":[],"bljhty":[{"date":"2023-10-05","commitResults":[{"hash":"3647d84668028d5ea5c84d7627894a8ef0ee48fc","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}}]},{"date":"2023-10-09","commitResults":[{"hash":"7e60ffed6f6e2ee9a0f983eee8e8a977406dfe5a","isMergeCommit":false,"messageTitle":"edited Duke class, added Ui class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":14}}},{"hash":"d8c20c9389f7a68369aa5fbbfd4ac33184a15975","isMergeCommit":false,"messageTitle":"Revert \"edited Duke class, added Ui class\"","messageBody":"This reverts commit 7e60ffed6f6e2ee9a0f983eee8e8a977406dfe5a.\n","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":11}}},{"hash":"9543dee9ca0e62cad63e6cab349aa53372035467","isMergeCommit":false,"messageTitle":"Revert \"Revert \"edited Duke class, added Ui class\"\"","messageBody":"This reverts commit d8c20c9389f7a68369aa5fbbfd4ac33184a15975.\n","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":14}}},{"hash":"e6e15fd5f670eda63cebf191b00c5da28f019d90","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":26,"deletions":0}}}]},{"date":"2023-10-11","commitResults":[{"hash":"d68fb478567a1542650b85e6563e6f62f641bdce","isMergeCommit":true,"messageTitle":"Merge pull request #4 from bljhty/master","messageBody":"Ui class added","fileTypesAndContributionMap":{}},{"hash":"fd522121b4dfe8c849d157c5273ea54a0aefefdd","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1}}},{"hash":"d74d0e8d3dd1acfc47f1f94b3a55afe1245cef5b","isMergeCommit":true,"messageTitle":"Merge pull request #5 from bljhty/Bryan-Ui_Class","messageBody":"Bryan UI class","fileTypesAndContributionMap":{}},{"hash":"ac5e4bffd283c4ada16e720a489c48f40cf62d45","isMergeCommit":false,"messageTitle":"added parser class and \"bye\" command to exit the program","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":42,"deletions":2}}},{"hash":"146c1e73d2ce3c3bba44f73c548c824cd6bad416","isMergeCommit":true,"messageTitle":"Merge pull request #6 from bljhty/Bryan-Ui_exit_program","messageBody":"added parser class and \"bye\" command to exit the program","fileTypesAndContributionMap":{}},{"hash":"023a67aa11129e7329f57d108d4b3b071f4dfd7a","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":3}}},{"hash":"1e769fe7348a49764e97958bee02138b848c4078","isMergeCommit":false,"messageTitle":"edited code","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1}}},{"hash":"56a91fa04831b1e06d8763d46b71d127c4ed2a00","isMergeCommit":false,"messageTitle":"edited code","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":12,"deletions":10}}},{"hash":"2dd7e20d1facad6c28ac218229a49e0d2512af1a","isMergeCommit":true,"messageTitle":"Merge pull request #7 from bljhty/Bryan-Ui_exit_program","messageBody":"Bryan UI exit program","fileTypesAndContributionMap":{}},{"hash":"bd4a31df6e42d5a903c4fab01439db31d962cf18","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":2}}},{"hash":"4e8e8a23056ebd8406321216403edf432b6999e9","isMergeCommit":true,"messageTitle":"Merge pull request #8 from bljhty/Bryan-Ui_exit_program","messageBody":"Bryan minor changes to code","fileTypesAndContributionMap":{}},{"hash":"d0d3b91db4ee5e0246a08beb19f6d5bf1becd689","isMergeCommit":false,"messageTitle":"added KaChinng exception class to handle errors","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":32,"deletions":15}}},{"hash":"15235a31b2217e9e7340ec3c94e4760276fa7bb6","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":9,"deletions":9}}},{"hash":"402c958dcd6b25b20d588adf6d488ef738dadc52","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":0}}},{"hash":"d3432fa63e6626dd7c9834b0f3c44216ed6a2d2d","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1}}},{"hash":"839899344f669c73d5f8ff23d80e68b66f3e60f5","isMergeCommit":false,"messageTitle":"edited test.sh","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"b384a0a035717caa270226c388abfdc1da60cf7c","isMergeCommit":true,"messageTitle":"Merge pull request #19 from bljhty/Bryan-kachingg_exception_class","messageBody":"Bryan kachingg exception class","fileTypesAndContributionMap":{}},{"hash":"032e9e794b6cad89ea6eab4b8dbe01458b253726","isMergeCommit":false,"messageTitle":"edited aboutus page","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"03fd6b2bd1462b8d3696fd96ae44264b386963fa","isMergeCommit":true,"messageTitle":"Merge pull request #20 from bljhty/Bryan-edit_about_us","messageBody":"edited aboutus page","fileTypesAndContributionMap":{}}]}],"Hongzhii":[],"KenCheung18":[{"date":"2023-10-05","commitResults":[{"hash":"ff771b65c44f9dd8452f28d33c98131f6ebdaca3","isMergeCommit":false,"messageTitle":"AboutUs","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"169d557cd8aeb41bfc052c8baa84595ffdfb91a6","isMergeCommit":true,"messageTitle":"Merge pull request #3 from KenCheung18/AboutUs","messageBody":"AboutUs","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Zhang-Zhitong":{"docs":0,"functional-code":0,"test-code":0},"limyuhching":{"docs":0,"functional-code":0,"test-code":0},"bljhty":{"docs":3,"functional-code":98,"test-code":0,"other":1},"Hongzhii":{"docs":0,"functional-code":0,"test-code":0},"KenCheung18":{"docs":1,"functional-code":0,"test-code":0}},"authorContributionVariance":{"Zhang-Zhitong":0.0,"limyuhching":0.0,"bljhty":1753.3398,"Hongzhii":0.0,"KenCheung18":9.310002},"authorDisplayNameMap":{"Zhang-Zhitong":"CS2113-T18-3 ZHAN..TONG","limyuhching":"CS2113-T18-3 LIM ..HING","bljhty":"CS2113-T18-3 LEE ..RYAN","Hongzhii":"CS2113-T18-3 EE H.. ZHI","KenCheung18":"CS2113-T18-3 CHEU..YUEN"}} diff --git a/AY2324S1-CS2113-W12-1_tp_master/authorship.json b/AY2324S1-CS2113-W12-1_tp_master/authorship.json index 21c5d62..907fea4 100644 --- a/AY2324S1-CS2113-W12-1_tp_master/authorship.json +++ b/AY2324S1-CS2113-W12-1_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"yeo-menghan"},"content":"# QuizHub project template","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"yeo-menghan":1,"-":63}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"--------|:--------------:|:--------------------------------------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"![](https://www.comp.nus.edu.sg/~stevenha/images/sh7.jpg) | James Hong Jey | [Github](https://github.com/James-Hong-Jey) | [Portfolio](docs/team/jameshong.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"StevenGX12"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Guan Xiao | [Github](https://github.com/StevenGX12) | [Portfolio](docs/team/guanxiao.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"![](https://avatars.githubusercontent.com/u/111041948?s\u003d400\u0026u\u003d6619a8328eba45edbc88fe01cf54efeb1f986d11\u0026v\u003d4) | Man Juncheng | [Github](https://github.com/spinoandraptos) | [Portfolio](docs/team/juncheng.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":"![](https://i.redd.it/6do158vk2ue61.png) | Li Sizhuang | [Github](https://github.com/lisizhuang-0121) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"yeo-menghan"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeo Meng Han | [Github](https://github.com/yeo-menghan) | [Portfolio](https://linkedin.com/in/yeo-meng-han/)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":1,"StevenGX12":1,"James-Hong-Jey":1,"yeo-menghan":1,"lisizhuang-0121":2,"-":3}},{"path":"src/main/java/Quizhub.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.command.Command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.parser.Parser;","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * The main program running for the Duke chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * The program bridges the user interface (Ui),","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * hard disk data (dataStorage) and supports","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * dynamic data manipulation.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"public class Quizhub {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Ui ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" private QuestionList questions;","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" private Parser parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Initiates the program with the necessary components.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath File location where data is","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * written to and read from by the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Quizhub(String filePath){","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" dataStorage \u003d new Storage(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" questions \u003d new QuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"James-Hong-Jey"},"content":" ui \u003d new Ui(dataStorage, questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" parser \u003d new Parser();","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * Starts the chatbot by showing opening message.","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot repeatedly handles user commands","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * until it is requested to terminate.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot closes by showing closing message.","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" public void run(){","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" ui.displayOpeningMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" boolean toExit \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" while(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" String fullCommand \u003d ui.readCommand();","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" Command command \u003d parser.parseCommand(fullCommand);","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" toExit \u003d command.toExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"James-Hong-Jey"},"content":" command.executeCommand(ui, dataStorage, questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" if(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" ui.displayClosingMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" new Quizhub(\"tasklist.txt\").run();","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":46,"James-Hong-Jey":5,"lisizhuang-0121":4}},{"path":"src/main/java/quizhub/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a user command to execute an action.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":" public enum CommandType {HELP, ADD, LIST, EDIT, DELETE, START, END, RESULT, FIND, EXIT};","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private CommandType commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new blank command.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command(){}","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new command of given type.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param commandType Type of command.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Command(CommandType commandType){","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" this.commandType \u003d commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Performs an action according to command.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing question data.","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){}","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * Checks if the latest command calls for program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public boolean toExit(){","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return commandType \u003d\u003d CommandType.EXIT;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":31,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandDelete.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to delete a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDelete extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":" private int qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new delete command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" * @param qnIndex Index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" public CommandDelete(int qnIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DELETE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" this.qnIndex \u003d qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Deletes the specified task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" String taskName \u003d questions.viewQuestionByIndex(qnIndex);","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Question Not Found\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" questions.deleteQuestionByIndex(qnIndex);","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"James-Hong-Jey"},"content":" dataStorage.updateData(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":23,"James-Hong-Jey":10,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandEdit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to edit a task.","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandEdit extends Command {","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String newDescription;","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String newAnswer;","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandEdit(String userInput) {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.EDIT);","lastModifiedDate":"2023-10-05"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" String[] editDetails;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" String[] editInfo;","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" editDetails \u003d userInput.split(\"edit\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" qnIndex \u003d Integer.parseInt(editDetails[0].strip());","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" editInfo \u003d editDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" } catch (NumberFormatException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the index of the question you wish to edit :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate if you are editing question description or answer :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" String editCriteria \u003d editInfo[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" String editContent \u003d editInfo[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" switch (editCriteria){","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" case \"description\":","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" newDescription \u003d editContent;","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" newAnswer \u003d \"\";","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" case \"answer\":","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" newDescription \u003d \"\";","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" newAnswer \u003d editContent;","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the content you are editing to :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":53,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":54,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":55,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" questions.editQuestionByIndex(qnIndex, newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":58,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"spinoandraptos":45,"James-Hong-Jey":2,"lisizhuang-0121":11}},{"path":"src/main/java/quizhub/command/CommandExit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class CommandExit extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new exit command to terminate program.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" public CommandExit() {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EXIT);","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":11,"lisizhuang-0121":1}},{"path":"src/main/java/quizhub/command/CommandFind.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandFind extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private String searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new find command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param searchDetails User input containing details of what to search.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandFind(String searchDetails){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super((CommandType.FIND));","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.searchDetails \u003d searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" questions.searchList(searchDetails);","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":26,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandHelp.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandHelp extends Command{","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" public CommandHelp() {","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.HELP);","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":12,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":13,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"lisizhuang-0121"},"content":" return;","lastModifiedDate":"2023-10-05"},{"lineNumber":15,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":16,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"James-Hong-Jey":2,"lisizhuang-0121":14}},{"path":"src/main/java/quizhub/command/CommandList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandList extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new list command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.LIST);","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Prints all tasks in current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" questions.printQuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":20,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandShortAnswer.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" * Represents a command to add a quiz question.","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":"public class CommandShortAnswer extends Command {","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new question command to add a SHORTANSWER question","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" * @param userInput User input containing details of the SHORTANSWER question","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" public CommandShortAnswer(String userInput){","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.ADD);","lastModifiedDate":"2023-10-05"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"James-Hong-Jey"},"content":" * Adds the SHORTANSWER question and updates storage data.","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" questions.addToQuestionList(userInput, Question.qnType.SHORTANSWER, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" dataStorage.updateData(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":19,"James-Hong-Jey":11,"lisizhuang-0121":5}},{"path":"src/main/java/quizhub/command/CommandStart.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"yeo-menghan"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"yeo-menghan"},"content":" * Command to Start the Quiz","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandStart extends Command{","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"lisizhuang-0121"},"content":" public CommandStart() {","lastModifiedDate":"2023-10-05"},{"lineNumber":12,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.START);","lastModifiedDate":"2023-10-05"},{"lineNumber":13,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":14,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":15,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"yeo-menghan"},"content":" * Loop through the array list of questions \u0026 allow the user to answer them.","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"yeo-menghan"},"content":" * If the input given matches EXACTLY (v1.0), then the answer is correct","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"yeo-menghan"},"content":" * returns \"Correct\" or \"Wrong\"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"yeo-menghan"},"content":" questions.startQuiz(ui);","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":24,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"James-Hong-Jey":2,"yeo-menghan":9,"lisizhuang-0121":13}},{"path":"src/main/java/quizhub/exception/QuizHubExceptions.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.exception;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"/**","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":" * Represents non-standard exceptions thrown by this program specifically.","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":" */","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class QuizHubExceptions extends Exception{","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":" public QuizHubExceptions(String message) {","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"lisizhuang-0121"},"content":" super(message);","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"lisizhuang-0121":10}},{"path":"src/main/java/quizhub/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.parser;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.command.*;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.exception.QuizHubExceptions;","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents a parser that converts user inputs into command objects.","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Parser {","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * Analyses and extracts relevant information from user input","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * to create a new Command object of the right type.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput The full user CLI input.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" String commandTitle \u003d userInput.split(\" \")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" String commandDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" switch (commandTitle) {","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" case \"bye\":","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" return new CommandExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" case \"list\":","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" return new CommandList();","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" case \"short\":","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" return new CommandShortAnswer(userInput);","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" case \"start\":","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" return new CommandStart();","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" case \"edit\":","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" return new CommandEdit(userInput);","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" case \"delete\":","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDelete(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" case \"find\":","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return new CommandFind(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" case \"help\":","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" return new CommandHelp();","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"lisizhuang-0121"},"content":" throw new QuizHubExceptions(\"Invalid Input\");","lastModifiedDate":"2023-10-05"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" catch(NumberFormatException | ArrayIndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please enter valid integer index!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"lisizhuang-0121"},"content":" catch (QuizHubExceptions exception){","lastModifiedDate":"2023-10-05"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d exception.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" if (exceptionMessage.equals(\"Invalid Input\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please enter a valid command :0\");","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" // TODO : CHANGE THIS","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Valid commands are: short [question]/[answer],\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" \" list,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" \" start,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" \" edit [question number] /question,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" \" edit [question number] /answer,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" \" delete [question number],\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" \" find /description [question description]\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" \" help,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" \" bye\");","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" return new Command();","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":56,"James-Hong-Jey":5,"lisizhuang-0121":4}},{"path":"src/main/java/quizhub/question/Question.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.question;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents all questions in the question list in general.","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class Question {","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"James-Hong-Jey"},"content":" public enum qnType {SHORTANSWER, DEFAULT};","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"James-Hong-Jey"},"content":" private qnType qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" private String description;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private boolean done;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Mark a question as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public void markAsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" done \u003d true;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Mark a question as not done.","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void markAsNotDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a blank description,","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default question type.","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"lisizhuang-0121"},"content":" public Question(){","lastModifiedDate":"2023-10-05"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" description \u003d \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" qnType \u003d qnType.DEFAULT;","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a given description,","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" * @param questionBody Description given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" public Question(String questionBody){","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" this.description \u003d questionBody;","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" qnType \u003d qnType.DEFAULT;","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a given description,","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" * not done status and given question type.","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" * @param questionBody Description given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" * @param qnType Type given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"James-Hong-Jey"},"content":" public Question(String questionBody, qnType qnType){","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" this.description \u003d questionBody;","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"James-Hong-Jey"},"content":" this.qnType \u003d qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" * Checks if a question has been done.","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" public boolean questionIsDone(){","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" return done;","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" * Returns question description.","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionDescription(){","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" return description;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" * Returns question timing details.","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionTiming(boolean useDefaultTiming){","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" return \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" * Returns task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"James-Hong-Jey"},"content":" public qnType getQuestionType(){","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"James-Hong-Jey"},"content":" return qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestion(String newDescription, String newAnswer){","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" if(!newDescription.equals(\"\")){","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d newDescription;","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":66,"James-Hong-Jey":14,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/question/ShortAnsQn.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.question;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents Short Answer Questions. This means answers are a simple string.","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class ShortAnsQn extends Question {","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"James-Hong-Jey"},"content":" private String answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question of type SHORTANSWER.","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * @param description question description.","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * @param answer question answer.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"James-Hong-Jey"},"content":" public ShortAnsQn(String description, String answer){","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" super(description, qnType.SHORTANSWER);","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" this.answer \u003d answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" * Returns question answer.","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionAnswer() {","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"James-Hong-Jey"},"content":" return this.answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestion(String newDescription, String newAnswer) {","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" super.editQuestion(newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" if(!newAnswer.equals(\"\")){","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" this.answer \u003d newAnswer;","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Returns question-answer pair, separated by a vertical bar.","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public String getQuestionDescription() {","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return super.getQuestionDescription() + \"/\" + this.answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":29,"James-Hong-Jey":7,"lisizhuang-0121":2}},{"path":"src/main/java/quizhub/questionlist/QuestionList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"James-Hong-Jey"},"content":"package quizhub.questionlist;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.ShortAnsQn;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.exception.QuizHubExceptions;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"yeo-menghan"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"James-Hong-Jey"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"James-Hong-Jey"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":"/**","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the list of questions currently registered in Quizhub.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"James-Hong-Jey"},"content":" * This list is created on program start and disposed on program termination.","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":"public class QuestionList {","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" private ArrayList\u003cQuestion\u003e allQns; //array of inputs","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" DateTimeFormatter inputDateTimeFormatter \u003d DateTimeFormatter.ofPattern( \"dd-MM-yyyy HH:mm\" );","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" * Adds a user-requested question to the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"James-Hong-Jey"},"content":" * Depending on the type of question to add to the list,","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" * the program extracts the relevant information from","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"James-Hong-Jey"},"content":" * the user input and builds a Question object to be added.","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"James-Hong-Jey"},"content":" * @param input The full user input from CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param qnType The type of question to be added (SHORTANSWER).","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" * @param showMessage If true, program will print response message on CLI after question is added.","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"James-Hong-Jey"},"content":" public void addToQuestionList(String input, Question.qnType qnType, boolean showMessage){","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"James-Hong-Jey"},"content":" switch (qnType) {","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" String[] inputTokens \u003d input.split(\"short\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" String description \u003d inputTokens[0];","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"James-Hong-Jey"},"content":" String answer \u003d inputTokens[1];","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"James-Hong-Jey"},"content":" if (description.equals(\"\") || answer.equals(\"\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"James-Hong-Jey"},"content":" throw new QuizHubExceptions(\"Incomplete Command\");","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.add(new ShortAnsQn(description, answer));","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" I have added the following question OwO:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S] %s\\n\", viewQuestionByIndex(getQuestionListSize()));","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException | QuizHubExceptions incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not input a proper question!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as short [question]/[answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"James-Hong-Jey"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints the details of a question in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"James-Hong-Jey"},"content":" * @param question The question in which details are to be printed.","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"James-Hong-Jey"},"content":" * @param asList If true, prints out the index of the question in the question list","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"James-Hong-Jey"},"content":" * in addition to the details of the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"James-Hong-Jey"},"content":" public void printQuestion(Question question, boolean asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"James-Hong-Jey"},"content":" int qnIndex \u003d allQns.indexOf(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"James-Hong-Jey"},"content":" switch(question.getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"James-Hong-Jey"},"content":" if (question.questionIsDone()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" if(asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" %d: [S][X] %s\\n\", qnIndex+1, question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"James-Hong-Jey"},"content":" } else{","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S][X] %s\\n\", question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"James-Hong-Jey"},"content":" } else {","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"James-Hong-Jey"},"content":" if(asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":71,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" %d: [S][] %s\\n\", qnIndex+1, question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":72,"author":{"gitId":"James-Hong-Jey"},"content":" } else{","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S][] %s\\n\", question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":74,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":75,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":78,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints all the questions in the current question list as an indexed list.","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":82,"author":{"gitId":"James-Hong-Jey"},"content":" public void printQuestionList(){","lastModifiedDate":"2023-10-08"},{"lineNumber":83,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":84,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No questions found! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":85,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":86,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":87,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":88,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":89,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":90,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":91,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":92,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":93,"author":{"gitId":"James-Hong-Jey"},"content":" * Mark a question in the current question list as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":95,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be marked as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":96,"author":{"gitId":"James-Hong-Jey"},"content":" * @param showMessage If true, program will print response message on CLI","lastModifiedDate":"2023-10-08"},{"lineNumber":97,"author":{"gitId":"James-Hong-Jey"},"content":" * after question is marked as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":98,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":99,"author":{"gitId":"James-Hong-Jey"},"content":" public void markQuestionAsDone(int index, boolean showMessage){","lastModifiedDate":"2023-10-08"},{"lineNumber":100,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":101,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.get(index-1).markAsDone();","lastModifiedDate":"2023-10-08"},{"lineNumber":102,"author":{"gitId":"James-Hong-Jey"},"content":" if(showMessage) {","lastModifiedDate":"2023-10-08"},{"lineNumber":103,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index - 1);","lastModifiedDate":"2023-10-08"},{"lineNumber":104,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have marked the following question as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":106,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":107,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":109,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":110,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":111,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":112,"author":{"gitId":"James-Hong-Jey"},"content":" * Mark a question in the current question list as not done.","lastModifiedDate":"2023-10-08"},{"lineNumber":113,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":114,"author":{"gitId":"James-Hong-Jey"},"content":" public void markQuestionAsNotDone(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":115,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":116,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.get(index-1).markAsNotDone();","lastModifiedDate":"2023-10-08"},{"lineNumber":117,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":118,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have unmarked the following question as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":119,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":120,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":122,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":123,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":124,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":125,"author":{"gitId":"James-Hong-Jey"},"content":" * Delete a question from the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":126,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":127,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":128,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":129,"author":{"gitId":"James-Hong-Jey"},"content":" public void deleteQuestionByIndex(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":130,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":131,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":132,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.remove(index - 1);","lastModifiedDate":"2023-10-08"},{"lineNumber":133,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have deleted the following question \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":134,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":135,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":136,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":138,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":139,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":140,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":141,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns the description and all other details of a question in one String object.","lastModifiedDate":"2023-10-08"},{"lineNumber":142,"author":{"gitId":"James-Hong-Jey"},"content":" * Used to display question details in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":143,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":144,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be viewed.","lastModifiedDate":"2023-10-08"},{"lineNumber":145,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":146,"author":{"gitId":"James-Hong-Jey"},"content":" public String viewQuestionByIndex(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":147,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":148,"author":{"gitId":"James-Hong-Jey"},"content":" switch(allQns.get(index-1).getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":149,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":150,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns.get(index-1).getQuestionDescription();","lastModifiedDate":"2023-10-08"},{"lineNumber":151,"author":{"gitId":"James-Hong-Jey"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":152,"author":{"gitId":"James-Hong-Jey"},"content":" return \"Question Not Found\";","lastModifiedDate":"2023-10-08"},{"lineNumber":153,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":154,"author":{"gitId":"James-Hong-Jey"},"content":" } catch(NullPointerException | IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":156,"author":{"gitId":"James-Hong-Jey"},"content":" return \"Question Not Found\";","lastModifiedDate":"2023-10-08"},{"lineNumber":157,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":158,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" * Delete a question from the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestionByIndex(int index, String newDescription, String newAnswer){","lastModifiedDate":"2023-10-08"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" question.editQuestion(newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have edited the following question \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":" if(index !\u003d 0){","lastModifiedDate":"2023-10-08"},{"lineNumber":174,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":175,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":176,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":177,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":178,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":179,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for questions in the current question list using their description.","lastModifiedDate":"2023-10-08"},{"lineNumber":180,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":181,"author":{"gitId":"James-Hong-Jey"},"content":" * @param keyword Description keyword(s) used to search for matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":182,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":183,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchListByDescription(String keyword){","lastModifiedDate":"2023-10-08"},{"lineNumber":184,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e matchedQuestions \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":185,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":186,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":187,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":188,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":189,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Here are questions that matched your search:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":190,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":191,"author":{"gitId":"James-Hong-Jey"},"content":" if(question.getQuestionDescription().contains(keyword)){","lastModifiedDate":"2023-10-08"},{"lineNumber":192,"author":{"gitId":"James-Hong-Jey"},"content":" matchedQuestions.add(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":193,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":194,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":195,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":196,"author":{"gitId":"James-Hong-Jey"},"content":" if(matchedQuestions.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":197,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No results found :\u003c Check your keyword is correct?\");","lastModifiedDate":"2023-10-08"},{"lineNumber":198,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":199,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":200,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":201,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":202,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for questions in the current question list using their date and time.","lastModifiedDate":"2023-10-08"},{"lineNumber":203,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":204,"author":{"gitId":"James-Hong-Jey"},"content":" * @param dateTime Date and time used to search for matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":205,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":206,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchListByTime(String dateTime){","lastModifiedDate":"2023-10-08"},{"lineNumber":207,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e matchedQuestions \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":208,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":209,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":210,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":211,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":212,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Here are questions that matched your search:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":213,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":214,"author":{"gitId":"James-Hong-Jey"},"content":" if(question.getQuestionTiming(true).contains(dateTime)){","lastModifiedDate":"2023-10-08"},{"lineNumber":215,"author":{"gitId":"James-Hong-Jey"},"content":" matchedQuestions.add(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":216,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":217,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":218,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":219,"author":{"gitId":"James-Hong-Jey"},"content":" if(matchedQuestions.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":220,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No results found :\u003c Check your time format is in dd-MM-yyyy HH:mm?\");","lastModifiedDate":"2023-10-08"},{"lineNumber":221,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":222,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":223,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":224,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":225,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for a question in the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":226,"author":{"gitId":"James-Hong-Jey"},"content":" * Depending on user command, this method will search by","lastModifiedDate":"2023-10-08"},{"lineNumber":227,"author":{"gitId":"James-Hong-Jey"},"content":" * either description matches or time matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":228,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":229,"author":{"gitId":"James-Hong-Jey"},"content":" * @param input Full user command input.","lastModifiedDate":"2023-10-08"},{"lineNumber":230,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":231,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchList(String input){","lastModifiedDate":"2023-10-08"},{"lineNumber":232,"author":{"gitId":"James-Hong-Jey"},"content":" String[] searchDetails;","lastModifiedDate":"2023-10-08"},{"lineNumber":233,"author":{"gitId":"James-Hong-Jey"},"content":" String[] searchInfo;","lastModifiedDate":"2023-10-08"},{"lineNumber":234,"author":{"gitId":"James-Hong-Jey"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":235,"author":{"gitId":"James-Hong-Jey"},"content":" searchDetails \u003d input.split(\"find\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":236,"author":{"gitId":"James-Hong-Jey"},"content":" searchInfo \u003d searchDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-08"},{"lineNumber":237,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":238,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate if you are searching by description or time :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":239,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as find /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":240,"author":{"gitId":"James-Hong-Jey"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":241,"author":{"gitId":"James-Hong-Jey"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":242,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":243,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":244,"author":{"gitId":"James-Hong-Jey"},"content":" String searchCriteria \u003d searchInfo[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":245,"author":{"gitId":"James-Hong-Jey"},"content":" String searchKeyword \u003d searchInfo[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":246,"author":{"gitId":"James-Hong-Jey"},"content":" switch (searchCriteria){","lastModifiedDate":"2023-10-08"},{"lineNumber":247,"author":{"gitId":"James-Hong-Jey"},"content":" case \"description\":","lastModifiedDate":"2023-10-08"},{"lineNumber":248,"author":{"gitId":"James-Hong-Jey"},"content":" searchListByDescription(searchKeyword);","lastModifiedDate":"2023-10-08"},{"lineNumber":249,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":250,"author":{"gitId":"James-Hong-Jey"},"content":" case \"time\":","lastModifiedDate":"2023-10-08"},{"lineNumber":251,"author":{"gitId":"James-Hong-Jey"},"content":" searchListByTime(searchKeyword);","lastModifiedDate":"2023-10-08"},{"lineNumber":252,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":253,"author":{"gitId":"James-Hong-Jey"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":254,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":255,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":256,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":257,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the keywords you are searching by :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":258,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as find /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":259,"author":{"gitId":"James-Hong-Jey"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":260,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":261,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":262,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":263,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":264,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns the size of current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":265,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":266,"author":{"gitId":"James-Hong-Jey"},"content":" public int getQuestionListSize(){","lastModifiedDate":"2023-10-08"},{"lineNumber":267,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns.size();","lastModifiedDate":"2023-10-08"},{"lineNumber":268,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":269,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":270,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns a list of all questions in the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":271,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":272,"author":{"gitId":"James-Hong-Jey"},"content":" public ArrayList\u003cQuestion\u003e getAllQns(){","lastModifiedDate":"2023-10-08"},{"lineNumber":273,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns;","lastModifiedDate":"2023-10-08"},{"lineNumber":274,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":275,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":276,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new empty question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":277,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":278,"author":{"gitId":"James-Hong-Jey"},"content":" public QuestionList(){","lastModifiedDate":"2023-10-08"},{"lineNumber":279,"author":{"gitId":"James-Hong-Jey"},"content":" allQns \u003d new ArrayList\u003cQuestion\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":280,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":281,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":282,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":283,"author":{"gitId":"yeo-menghan"},"content":" * Retrieves the answer for a question by its index in the question list.","lastModifiedDate":"2023-10-09"},{"lineNumber":284,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":285,"author":{"gitId":"yeo-menghan"},"content":" * @param index The index of the question in the list.","lastModifiedDate":"2023-10-09"},{"lineNumber":286,"author":{"gitId":"yeo-menghan"},"content":" * @return The answer to the question, or null if the index is invalid or the question is of a different type.","lastModifiedDate":"2023-10-09"},{"lineNumber":287,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":288,"author":{"gitId":"yeo-menghan"},"content":" public String getAnswerByIndex(int index) {","lastModifiedDate":"2023-10-09"},{"lineNumber":289,"author":{"gitId":"yeo-menghan"},"content":" try {","lastModifiedDate":"2023-10-09"},{"lineNumber":290,"author":{"gitId":"yeo-menghan"},"content":" Question question \u003d allQns.get(index - 1);","lastModifiedDate":"2023-10-09"},{"lineNumber":291,"author":{"gitId":"yeo-menghan"},"content":" if (question instanceof ShortAnsQn) {","lastModifiedDate":"2023-10-09"},{"lineNumber":292,"author":{"gitId":"yeo-menghan"},"content":" return ((ShortAnsQn) question).getQuestionAnswer();","lastModifiedDate":"2023-10-09"},{"lineNumber":293,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":294,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" This question is not a Short Answer question.\");","lastModifiedDate":"2023-10-09"},{"lineNumber":295,"author":{"gitId":"yeo-menghan"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":296,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":297,"author":{"gitId":"yeo-menghan"},"content":" } catch (IndexOutOfBoundsException invalidIndex) {","lastModifiedDate":"2023-10-09"},{"lineNumber":298,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Ono! Please enter a valid question number *sobs*\");","lastModifiedDate":"2023-10-09"},{"lineNumber":299,"author":{"gitId":"yeo-menghan"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":300,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":301,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":302,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":303,"author":{"gitId":"yeo-menghan"},"content":" * Starts a quiz session using the provided user interface (UI).","lastModifiedDate":"2023-10-09"},{"lineNumber":304,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":305,"author":{"gitId":"yeo-menghan"},"content":" * @param ui The user interface to interact with the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":306,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":307,"author":{"gitId":"yeo-menghan"},"content":" public void startQuiz(Ui ui) {","lastModifiedDate":"2023-10-09"},{"lineNumber":308,"author":{"gitId":"yeo-menghan"},"content":" if (allQns.isEmpty()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":309,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" No questions found! Add questions before starting the quiz.\");","lastModifiedDate":"2023-10-09"},{"lineNumber":310,"author":{"gitId":"yeo-menghan"},"content":" return;","lastModifiedDate":"2023-10-09"},{"lineNumber":311,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":312,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":313,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Starting the quiz...\");","lastModifiedDate":"2023-10-09"},{"lineNumber":314,"author":{"gitId":"yeo-menghan"},"content":" int totalQuestions \u003d allQns.size();","lastModifiedDate":"2023-10-09"},{"lineNumber":315,"author":{"gitId":"yeo-menghan"},"content":" int correctAnswers \u003d 0;","lastModifiedDate":"2023-10-09"},{"lineNumber":316,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":317,"author":{"gitId":"yeo-menghan"},"content":" for (int i \u003d 0; i \u003c totalQuestions; i++) {","lastModifiedDate":"2023-10-09"},{"lineNumber":318,"author":{"gitId":"yeo-menghan"},"content":" Question question \u003d allQns.get(i);","lastModifiedDate":"2023-10-09"},{"lineNumber":319,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":320,"author":{"gitId":"yeo-menghan"},"content":" ui.displayQuestion(question, i + 1, totalQuestions);","lastModifiedDate":"2023-10-09"},{"lineNumber":321,"author":{"gitId":"yeo-menghan"},"content":" String correctAnswer \u003d getAnswerByIndex(i + 1); // Get the correct answer by index","lastModifiedDate":"2023-10-09"},{"lineNumber":322,"author":{"gitId":"yeo-menghan"},"content":" String userAnswer \u003d ui.getUserInput();","lastModifiedDate":"2023-10-09"},{"lineNumber":323,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":324,"author":{"gitId":"yeo-menghan"},"content":" if (userAnswer.equalsIgnoreCase(correctAnswer)) {","lastModifiedDate":"2023-10-09"},{"lineNumber":325,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Correct!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":326,"author":{"gitId":"yeo-menghan"},"content":" correctAnswers++;","lastModifiedDate":"2023-10-09"},{"lineNumber":327,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":328,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Wrong!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":329,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":330,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":331,"author":{"gitId":"yeo-menghan"},"content":" int questionsLeft \u003d totalQuestions - (i + 1);","lastModifiedDate":"2023-10-09"},{"lineNumber":332,"author":{"gitId":"yeo-menghan"},"content":" if (questionsLeft \u003e 0) {","lastModifiedDate":"2023-10-09"},{"lineNumber":333,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Questions left: \" + questionsLeft);","lastModifiedDate":"2023-10-09"},{"lineNumber":334,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":335,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Quiz completed!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":336,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":337,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":338,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Your score: \" + correctAnswers + \"/\" + totalQuestions);","lastModifiedDate":"2023-10-09"},{"lineNumber":339,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":340,"author":{"gitId":"James-Hong-Jey"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"spinoandraptos":31,"James-Hong-Jey":249,"yeo-menghan":60}},{"path":"src/main/java/quizhub/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import java.io.File;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the hard disk storage where","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"James-Hong-Jey"},"content":" * question data is stored, read and updated.","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"public class Storage {","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private File dataFile;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new storage for storing question data.","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is stored and read from.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" dataFile \u003d new File(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Write in new data to storage.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is written to.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param textToAdd Data to be written.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param toAppend If true, new data is added to the back of existing data instead of overwriting them.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" private void writeToFile(String filePath, String textToAdd, boolean toAppend) throws IOException {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath, toAppend);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.write(textToAdd);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.close();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" * Build a new question list from data stored in hard disk.","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" * Used at program start to build the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list to be built.","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"James-Hong-Jey"},"content":" public void buildCurrentListFromFile(QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" if (dataFile.createNewFile()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question-list created: \" + dataFile.getName());","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" int questionIndex \u003d 0;","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" Scanner fileScanner \u003d new Scanner(dataFile);","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" if (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" while (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"James-Hong-Jey"},"content":" questionIndex++;","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" String nextQuestion \u003d fileScanner.nextLine();","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"James-Hong-Jey"},"content":" String[] questionSubStrings \u003d nextQuestion.split(\"\\\\|\");","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"James-Hong-Jey"},"content":" String questionType \u003d questionSubStrings[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"James-Hong-Jey"},"content":" String questionDoneStatus \u003d questionSubStrings[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"James-Hong-Jey"},"content":" String questionDescription \u003d questionSubStrings[2].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" // TODO : change this entire code chunk, right now they\u0027re all default","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"James-Hong-Jey"},"content":" switch (questionType) {","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" case \"S\": questions.addToQuestionList(\"short \" + questionDescription,","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" Question.qnType.SHORTANSWER, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"James-Hong-Jey"},"content":" if (questionDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"James-Hong-Jey"},"content":" questions.markQuestionAsDone(questionIndex, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(nextQuestion);","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"James-Hong-Jey"},"content":" * Build a new question list from data stored in hard disk.","lastModifiedDate":"2023-10-08"},{"lineNumber":86,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints out the questions in the list in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list that has been built.","lastModifiedDate":"2023-10-08"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"James-Hong-Jey"},"content":" public void loadData(QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":91,"author":{"gitId":"James-Hong-Jey"},"content":" buildCurrentListFromFile(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":92,"author":{"gitId":"James-Hong-Jey"},"content":" if (questions.getQuestionListSize() \u003e 0) {","lastModifiedDate":"2023-10-08"},{"lineNumber":93,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" You currently have the following questions uWu\");","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"James-Hong-Jey"},"content":" questions.printQuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" You currently have no saved questions uWu\");","lastModifiedDate":"2023-10-08"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":" * Overwrites all existing data in storage with","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"James-Hong-Jey"},"content":" * the current questions in the question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":102,"author":{"gitId":"James-Hong-Jey"},"content":" * Used after every question change and on program termination.","lastModifiedDate":"2023-10-08"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list to overwrite current data with.","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"James-Hong-Jey"},"content":" public void updateData(QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" //flush all current records","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"James-Hong-Jey"},"content":" writeToFile(dataFile.getPath(), \"Latest Questions\" + System.lineSeparator(), false);","lastModifiedDate":"2023-10-08"},{"lineNumber":110,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e allQuestions \u003d questions.getAllQns();","lastModifiedDate":"2023-10-08"},{"lineNumber":111,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question: allQuestions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":112,"author":{"gitId":"James-Hong-Jey"},"content":" switch (question.getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":114,"author":{"gitId":"James-Hong-Jey"},"content":" if (question.questionIsDone()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"S | done | \" + question.getQuestionDescription()","lastModifiedDate":"2023-10-08"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"S | undone | \" + question.getQuestionDescription()","lastModifiedDate":"2023-10-08"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":93,"James-Hong-Jey":40,"lisizhuang-0121":1}},{"path":"src/main/java/quizhub/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"yeo-menghan"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * Represents the user interface for CLI displays.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * Supports CLI interactions with users.","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"public class Ui {","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" private final Scanner input \u003d new Scanner(System.in); // Create a Scanner object","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" private QuestionList tasks;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Print out separating line in CLI to mark","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" * start and end of chatbot replies.","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" public void showLine(){","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * Displays opening message to welcome users","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * on the launch of chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" public void displayOpeningMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" String logo \u003d \" _____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" + \" | __ \\\\ ____ __ _ ____ \\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" + \" | |__ | / _ \\\\| \\\\| |/ _ \\\\\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" + \" | | \\\\ \\\\| ___/| \\\\ | | ___/\\n\"","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" + \" |_| \\\\_\\\\\\\\____| |_|\\\\__|\\\\____|\\n\";","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Hello from\\n\" + logo);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" I am Rene Kokoro!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Let me record your tasks!! *blushes*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" System.out.println();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.loadData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" * Retrieves the CLI input from the user","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" * and documents it as a String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" public String readCommand() {","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" * Displays closing message on exiting the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" public void displayClosingMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Aww you are leaving? *sniffs*\");","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Well... hope to see you again soon!\");","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" * Sets up the bridging between the UI and tasks data.","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks A record of all tasks documented that is built on program start and disposed on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage The hard disk record of all tasks documented that persists even on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" public Ui(Storage dataStorage, QuestionList tasks){","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" this.dataStorage \u003d dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":68,"author":{"gitId":"yeo-menghan"},"content":" * Displays a question along with its index in a set of questions and the total count of questions.","lastModifiedDate":"2023-10-09"},{"lineNumber":69,"author":{"gitId":"yeo-menghan"},"content":" * Extracts and displays the question part from the question description, which is in the \"question/answer\" format.","lastModifiedDate":"2023-10-09"},{"lineNumber":70,"author":{"gitId":"yeo-menghan"},"content":" * If the format is invalid or missing, it prompts the user to edit the question via the edit function.","lastModifiedDate":"2023-10-09"},{"lineNumber":71,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":72,"author":{"gitId":"yeo-menghan"},"content":" * @param question The Question object containing the question description.","lastModifiedDate":"2023-10-09"},{"lineNumber":73,"author":{"gitId":"yeo-menghan"},"content":" * @param currentQuestionIndex The index of the current question in the set of questions.","lastModifiedDate":"2023-10-09"},{"lineNumber":74,"author":{"gitId":"yeo-menghan"},"content":" * @param totalQuestions The total count of questions in the set.","lastModifiedDate":"2023-10-09"},{"lineNumber":75,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":76,"author":{"gitId":"yeo-menghan"},"content":" public void displayQuestion(Question question, int currentQuestionIndex, int totalQuestions) {","lastModifiedDate":"2023-10-09"},{"lineNumber":77,"author":{"gitId":"yeo-menghan"},"content":" showLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":78,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Question \" + currentQuestionIndex + \" / \" + totalQuestions + \":\");","lastModifiedDate":"2023-10-09"},{"lineNumber":79,"author":{"gitId":"yeo-menghan"},"content":" String questionDescription \u003d question.getQuestionDescription(); // getQuestionDescription returns question/answer","lastModifiedDate":"2023-10-09"},{"lineNumber":80,"author":{"gitId":"yeo-menghan"},"content":" String[] parts \u003d questionDescription.split(\"/\");","lastModifiedDate":"2023-10-09"},{"lineNumber":81,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":82,"author":{"gitId":"yeo-menghan"},"content":" if (parts.length \u003e\u003d 1) {","lastModifiedDate":"2023-10-09"},{"lineNumber":83,"author":{"gitId":"yeo-menghan"},"content":" // Extract and display the question part","lastModifiedDate":"2023-10-09"},{"lineNumber":84,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" \" + parts[0]); // part[0] returns the question part","lastModifiedDate":"2023-10-09"},{"lineNumber":85,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":86,"author":{"gitId":"yeo-menghan"},"content":" // Handle the case where the format is invalid","lastModifiedDate":"2023-10-09"},{"lineNumber":87,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Invalid question format, please edit this question via the edit function\");","lastModifiedDate":"2023-10-09"},{"lineNumber":88,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":89,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":90,"author":{"gitId":"yeo-menghan"},"content":" System.out.print(\" Your Answer: \");","lastModifiedDate":"2023-10-09"},{"lineNumber":91,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":92,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":93,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":94,"author":{"gitId":"yeo-menghan"},"content":" * duplication of readCommand for readability","lastModifiedDate":"2023-10-09"},{"lineNumber":95,"author":{"gitId":"yeo-menghan"},"content":" * @return","lastModifiedDate":"2023-10-09"},{"lineNumber":96,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":97,"author":{"gitId":"yeo-menghan"},"content":" public String getUserInput() {","lastModifiedDate":"2023-10-09"},{"lineNumber":98,"author":{"gitId":"yeo-menghan"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":99,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":62,"James-Hong-Jey":3,"yeo-menghan":34,"lisizhuang-0121":2}}] +[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"yeo-menghan"},"content":"# QuizHub project template","lastModifiedDate":"2023-10-04"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"yeo-menghan":1,"-":63}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"--------|:--------------:|:--------------------------------------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"![](https://www.comp.nus.edu.sg/~stevenha/images/sh7.jpg) | James Hong Jey | [Github](https://github.com/James-Hong-Jey) | [Portfolio](docs/team/jameshong.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"StevenGX12"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Guan Xiao | [Github](https://github.com/StevenGX12) | [Portfolio](docs/team/guanxiao.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"![](https://avatars.githubusercontent.com/u/111041948?s\u003d400\u0026u\u003d6619a8328eba45edbc88fe01cf54efeb1f986d11\u0026v\u003d4) | Man Juncheng | [Github](https://github.com/spinoandraptos) | [Portfolio](docs/team/juncheng.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":"![](https://i.redd.it/6do158vk2ue61.png) | Li Sizhuang | [Github](https://github.com/lisizhuang-0121) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"yeo-menghan"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeo Meng Han | [Github](https://github.com/yeo-menghan) | [Portfolio](https://linkedin.com/in/yeo-meng-han/)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":1,"StevenGX12":1,"James-Hong-Jey":1,"yeo-menghan":1,"lisizhuang-0121":2,"-":3}},{"path":"src/main/java/Quizhub.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.command.Command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.parser.Parser;","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * The main program running for the Duke chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * The program bridges the user interface (Ui),","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * hard disk data (dataStorage) and supports","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * dynamic data manipulation.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":"public class Quizhub {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Ui ui;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" private QuestionList questions;","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" private Parser parser;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * Initiates the program with the necessary components.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath File location where data is","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * written to and read from by the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" public Quizhub(String filePath){","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" dataStorage \u003d new Storage(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" questions \u003d new QuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"James-Hong-Jey"},"content":" ui \u003d new Ui(dataStorage, questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" parser \u003d new Parser();","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" * Starts the chatbot by showing opening message.","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot repeatedly handles user commands","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * until it is requested to terminate.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" * Chatbot closes by showing closing message.","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" public void run(){","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" ui.displayOpeningMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" boolean toExit \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" while(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" String fullCommand \u003d ui.readCommand();","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" Command command \u003d parser.parseCommand(fullCommand);","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" toExit \u003d command.toExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"James-Hong-Jey"},"content":" command.executeCommand(ui, dataStorage, questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" if(!toExit){","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" ui.showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" ui.displayClosingMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" new Quizhub(\"tasklist.txt\").run();","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":46,"James-Hong-Jey":5,"lisizhuang-0121":4}},{"path":"src/main/java/quizhub/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a user command to execute an action.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":" public enum CommandType {HELP, ADD, LIST, EDIT, DELETE, START, END, RESULT, FIND, EXIT};","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private CommandType commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new blank command.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command(){}","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new command of given type.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param commandType Type of command.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Command(CommandType commandType){","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" this.commandType \u003d commandType;","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Performs an action according to command.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing question data.","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){}","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * Checks if the latest command calls for program termination.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public boolean toExit(){","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return commandType \u003d\u003d CommandType.EXIT;","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":31,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandDelete.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to delete a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandDelete extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":" private int qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new delete command for a task of specified index.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" * @param qnIndex Index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" public CommandDelete(int qnIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.DELETE);","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" this.qnIndex \u003d qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Deletes the specified task and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" String taskName \u003d questions.viewQuestionByIndex(qnIndex);","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" if(!taskName.equals(\"Question Not Found\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" questions.deleteQuestionByIndex(qnIndex);","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"James-Hong-Jey"},"content":" dataStorage.updateData(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":23,"James-Hong-Jey":10,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandEdit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to edit a task.","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandEdit extends Command {","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private int qnIndex;","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" private String newDescription;","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String newAnswer;","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandEdit(String userInput) {","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.EDIT);","lastModifiedDate":"2023-10-05"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" String[] editDetails;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" String[] editInfo;","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" editDetails \u003d userInput.split(\"edit\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" qnIndex \u003d Integer.parseInt(editDetails[0].strip());","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" editInfo \u003d editDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" } catch (NumberFormatException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the index of the question you wish to edit :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate if you are editing question description or answer :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" String editCriteria \u003d editInfo[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" String editContent \u003d editInfo[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" switch (editCriteria){","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" case \"description\":","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" newDescription \u003d editContent;","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" newAnswer \u003d \"\";","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" case \"answer\":","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" newDescription \u003d \"\";","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" newAnswer \u003d editContent;","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the content you are editing to :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as edit [question number] /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" \"or edit /answer [answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":53,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":54,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":55,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" questions.editQuestionByIndex(qnIndex, newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":58,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"spinoandraptos":45,"James-Hong-Jey":2,"lisizhuang-0121":11}},{"path":"src/main/java/quizhub/command/CommandExit.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to exit the program.","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"public class CommandExit extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new exit command to terminate program.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" public CommandExit() {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.EXIT);","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":11,"lisizhuang-0121":1}},{"path":"src/main/java/quizhub/command/CommandFind.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandFind extends Command{","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" private String searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new find command to search for a task.","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" * @param searchDetails User input containing details of what to search.","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" public CommandFind(String searchDetails){","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" super((CommandType.FIND));","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" this.searchDetails \u003d searchDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" * Checks if specified task exists.","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Marks the specified task as not done and updates storage data.","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" questions.searchList(searchDetails);","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":26,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandHelp.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandHelp extends Command{","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" public CommandHelp() {","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.HELP);","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":12,"author":{"gitId":"StevenGX12"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"StevenGX12"},"content":" * Displays all commands available to the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"StevenGX12"},"content":" * ","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"StevenGX12"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"StevenGX12"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"StevenGX12"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"StevenGX12"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" Here are the list of commands you can use:\");","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 1. help - shows the list of commands you can use\");","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 2. short [question]/[answer] - adds a short answer question and its answer to the list\");","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 3. list - shows the list of questions and answers\");","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 4. delete [question number] - deletes the question and answer at the specified number\");","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 5. find /[description] - displays all questions that contains the the specified description\");","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 6. edit [question number] /question - edits the question with the specified number\");","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 7. edit [question number] /answer - edits the answer to the question with the specified number\");","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 8. start - starts the quiz\");","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" 9. bye - exits the program\"); ","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"lisizhuang-0121"},"content":" return;","lastModifiedDate":"2023-10-05"},{"lineNumber":32,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":33,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"StevenGX12":17,"James-Hong-Jey":2,"lisizhuang-0121":14}},{"path":"src/main/java/quizhub/command/CommandList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" * Represents a command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"public class CommandList extends Command {","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new list command to list all tasks.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public CommandList(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" super(CommandType.LIST);","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Prints all tasks in current task list.","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" questions.printQuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":20,"James-Hong-Jey":4,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/command/CommandShortAnswer.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" * Represents a command to add a quiz question.","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":"public class CommandShortAnswer extends Command {","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" private String userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new question command to add a SHORTANSWER question","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" * @param userInput User input containing details of the SHORTANSWER question","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" public CommandShortAnswer(String userInput){","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.ADD);","lastModifiedDate":"2023-10-05"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" this.userInput \u003d userInput;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"James-Hong-Jey"},"content":" * Adds the SHORTANSWER question and updates storage data.","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * @param ui User interface for interactions with user through CLI.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions Current question list in the program.","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage Hard disk storage for storing task data.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" questions.addToQuestionList(userInput, Question.qnType.SHORTANSWER, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" dataStorage.updateData(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":19,"James-Hong-Jey":11,"lisizhuang-0121":5}},{"path":"src/main/java/quizhub/command/CommandStart.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.command;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"yeo-menghan"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"yeo-menghan"},"content":" * Command to Start the Quiz","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":"public class CommandStart extends Command{","lastModifiedDate":"2023-10-05"},{"lineNumber":11,"author":{"gitId":"lisizhuang-0121"},"content":" public CommandStart() {","lastModifiedDate":"2023-10-05"},{"lineNumber":12,"author":{"gitId":"lisizhuang-0121"},"content":" super(CommandType.START);","lastModifiedDate":"2023-10-05"},{"lineNumber":13,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":14,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"},{"lineNumber":15,"author":{"gitId":"lisizhuang-0121"},"content":" @Override","lastModifiedDate":"2023-10-05"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" public void executeCommand(Ui ui, Storage dataStorage, QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"yeo-menghan"},"content":" * Loop through the array list of questions \u0026 allow the user to answer them.","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"yeo-menghan"},"content":" * If the input given matches EXACTLY (v1.0), then the answer is correct","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"yeo-menghan"},"content":" * returns \"Correct\" or \"Wrong\"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"yeo-menghan"},"content":" questions.startQuiz(ui);","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":24,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"James-Hong-Jey":2,"yeo-menghan":9,"lisizhuang-0121":13}},{"path":"src/main/java/quizhub/exception/QuizHubExceptions.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.exception;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"lisizhuang-0121"},"content":"/**","lastModifiedDate":"2023-10-05"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":" * Represents non-standard exceptions thrown by this program specifically.","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":" */","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class QuizHubExceptions extends Exception{","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"lisizhuang-0121"},"content":" public QuizHubExceptions(String message) {","lastModifiedDate":"2023-10-05"},{"lineNumber":7,"author":{"gitId":"lisizhuang-0121"},"content":" super(message);","lastModifiedDate":"2023-10-05"},{"lineNumber":8,"author":{"gitId":"lisizhuang-0121"},"content":" }","lastModifiedDate":"2023-10-05"},{"lineNumber":9,"author":{"gitId":"lisizhuang-0121"},"content":"}","lastModifiedDate":"2023-10-05"},{"lineNumber":10,"author":{"gitId":"lisizhuang-0121"},"content":"","lastModifiedDate":"2023-10-05"}],"authorContributionMap":{"lisizhuang-0121":10}},{"path":"src/main/java/quizhub/parser/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.parser;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.command.*;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.exception.QuizHubExceptions;","lastModifiedDate":"2023-10-05"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":" * Represents a parser that converts user inputs into command objects.","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"public class Parser {","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * Analyses and extracts relevant information from user input","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * to create a new Command object of the right type.","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" * @param userInput The full user CLI input.","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" public Command parseCommand(String userInput) {","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" String commandTitle \u003d userInput.split(\" \")[0];","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" String commandDetails;","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" int taskIndex;","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" switch (commandTitle) {","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" case \"bye\":","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" return new CommandExit();","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" case \"list\":","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" return new CommandList();","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" case \"short\":","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" return new CommandShortAnswer(userInput);","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" case \"start\":","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" return new CommandStart();","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" case \"edit\":","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" return new CommandEdit(userInput);","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" case \"delete\":","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" commandDetails \u003d userInput.split(\" \")[1];","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" taskIndex \u003d Integer.parseInt(commandDetails.strip());","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" return new CommandDelete(taskIndex);","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" case \"find\":","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return new CommandFind(userInput);","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" case \"help\":","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":" return new CommandHelp();","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"lisizhuang-0121"},"content":" throw new QuizHubExceptions(\"Invalid Input\");","lastModifiedDate":"2023-10-05"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" catch(NumberFormatException | ArrayIndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please enter valid integer index!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"lisizhuang-0121"},"content":" catch (QuizHubExceptions exception){","lastModifiedDate":"2023-10-05"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" String exceptionMessage \u003d exception.getMessage();","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" if (exceptionMessage.equals(\"Invalid Input\")) {","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please enter a valid command :0\");","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" // TODO : CHANGE THIS","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Valid commands are: short [question]/[answer],\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" \" list,\\n\" +","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" \" start,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" \" edit [question number] /question,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" \" edit [question number] /answer,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" \" delete [question number],\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"spinoandraptos"},"content":" \" find /description [question description]\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" \" help,\\n\" +","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" \" bye\");","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" return new Command();","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":56,"James-Hong-Jey":5,"lisizhuang-0121":4}},{"path":"src/main/java/quizhub/question/Question.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.question;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents all questions in the question list in general.","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class Question {","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"James-Hong-Jey"},"content":" public enum qnType {SHORTANSWER, DEFAULT};","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"James-Hong-Jey"},"content":" private qnType qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" private String description;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" private boolean done;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Mark a question as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" public void markAsDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" done \u003d true;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Mark a question as not done.","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" public void markAsNotDone(){","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a blank description,","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default question type.","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"lisizhuang-0121"},"content":" public Question(){","lastModifiedDate":"2023-10-05"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" description \u003d \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" qnType \u003d qnType.DEFAULT;","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a given description,","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" * not done status and default task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" * @param questionBody Description given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" public Question(String questionBody){","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" this.description \u003d questionBody;","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" qnType \u003d qnType.DEFAULT;","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question with a given description,","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" * not done status and given question type.","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" * @param questionBody Description given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" * @param qnType Type given to the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"James-Hong-Jey"},"content":" public Question(String questionBody, qnType qnType){","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" this.description \u003d questionBody;","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" done \u003d false;","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"James-Hong-Jey"},"content":" this.qnType \u003d qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" * Checks if a question has been done.","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" public boolean questionIsDone(){","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"spinoandraptos"},"content":" return done;","lastModifiedDate":"2023-10-04"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" * Returns question description.","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionDescription(){","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" return description;","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"spinoandraptos"},"content":" * Returns question timing details.","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionTiming(boolean useDefaultTiming){","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" return \"\";","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" * Returns task type.","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"James-Hong-Jey"},"content":" public qnType getQuestionType(){","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"James-Hong-Jey"},"content":" return qnType;","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestion(String newDescription, String newAnswer){","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" if(!newDescription.equals(\"\")){","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" this.description \u003d newDescription;","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":66,"James-Hong-Jey":14,"lisizhuang-0121":3}},{"path":"src/main/java/quizhub/question/ShortAnsQn.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.question;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"spinoandraptos"},"content":" * Represents Short Answer Questions. This means answers are a simple string.","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"lisizhuang-0121"},"content":"public class ShortAnsQn extends Question {","lastModifiedDate":"2023-10-05"},{"lineNumber":6,"author":{"gitId":"James-Hong-Jey"},"content":" private String answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":" * Creates a new question of type SHORTANSWER.","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * @param description question description.","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * @param answer question answer.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"James-Hong-Jey"},"content":" public ShortAnsQn(String description, String answer){","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":" super(description, qnType.SHORTANSWER);","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" this.answer \u003d answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" * Returns question answer.","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" public String getQuestionAnswer() {","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"James-Hong-Jey"},"content":" return this.answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestion(String newDescription, String newAnswer) {","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" super.editQuestion(newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" if(!newAnswer.equals(\"\")){","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" this.answer \u003d newAnswer;","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" * Returns question-answer pair, separated by a vertical bar.","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" @Override","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" public String getQuestionDescription() {","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" return super.getQuestionDescription() + \"/\" + this.answer;","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":29,"James-Hong-Jey":7,"lisizhuang-0121":2}},{"path":"src/main/java/quizhub/questionlist/QuestionList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"James-Hong-Jey"},"content":"package quizhub.questionlist;","lastModifiedDate":"2023-10-08"},{"lineNumber":2,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.ShortAnsQn;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.exception.QuizHubExceptions;","lastModifiedDate":"2023-10-08"},{"lineNumber":6,"author":{"gitId":"yeo-menghan"},"content":"import quizhub.ui.Ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":8,"author":{"gitId":"James-Hong-Jey"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-08"},{"lineNumber":9,"author":{"gitId":"James-Hong-Jey"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-08"},{"lineNumber":10,"author":{"gitId":"James-Hong-Jey"},"content":"/**","lastModifiedDate":"2023-10-08"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the list of questions currently registered in Quizhub.","lastModifiedDate":"2023-10-08"},{"lineNumber":12,"author":{"gitId":"James-Hong-Jey"},"content":" * This list is created on program start and disposed on program termination.","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":14,"author":{"gitId":"James-Hong-Jey"},"content":"public class QuestionList {","lastModifiedDate":"2023-10-08"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" private ArrayList\u003cQuestion\u003e allQns; //array of inputs","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"James-Hong-Jey"},"content":" DateTimeFormatter inputDateTimeFormatter \u003d DateTimeFormatter.ofPattern( \"dd-MM-yyyy HH:mm\" );","lastModifiedDate":"2023-10-08"},{"lineNumber":17,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"James-Hong-Jey"},"content":" * Adds a user-requested question to the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":19,"author":{"gitId":"James-Hong-Jey"},"content":" * Depending on the type of question to add to the list,","lastModifiedDate":"2023-10-08"},{"lineNumber":20,"author":{"gitId":"James-Hong-Jey"},"content":" * the program extracts the relevant information from","lastModifiedDate":"2023-10-08"},{"lineNumber":21,"author":{"gitId":"James-Hong-Jey"},"content":" * the user input and builds a Question object to be added.","lastModifiedDate":"2023-10-08"},{"lineNumber":22,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":23,"author":{"gitId":"James-Hong-Jey"},"content":" * @param input The full user input from CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" * @param qnType The type of question to be added (SHORTANSWER).","lastModifiedDate":"2023-10-08"},{"lineNumber":25,"author":{"gitId":"James-Hong-Jey"},"content":" * @param showMessage If true, program will print response message on CLI after question is added.","lastModifiedDate":"2023-10-08"},{"lineNumber":26,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":27,"author":{"gitId":"James-Hong-Jey"},"content":" public void addToQuestionList(String input, Question.qnType qnType, boolean showMessage){","lastModifiedDate":"2023-10-08"},{"lineNumber":28,"author":{"gitId":"James-Hong-Jey"},"content":" switch (qnType) {","lastModifiedDate":"2023-10-08"},{"lineNumber":29,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":30,"author":{"gitId":"James-Hong-Jey"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":31,"author":{"gitId":"James-Hong-Jey"},"content":" String[] inputTokens \u003d input.split(\"short\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":32,"author":{"gitId":"James-Hong-Jey"},"content":" String description \u003d inputTokens[0];","lastModifiedDate":"2023-10-08"},{"lineNumber":33,"author":{"gitId":"James-Hong-Jey"},"content":" String answer \u003d inputTokens[1];","lastModifiedDate":"2023-10-08"},{"lineNumber":34,"author":{"gitId":"James-Hong-Jey"},"content":" if (description.equals(\"\") || answer.equals(\"\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":35,"author":{"gitId":"James-Hong-Jey"},"content":" throw new QuizHubExceptions(\"Incomplete Command\");","lastModifiedDate":"2023-10-08"},{"lineNumber":36,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.add(new ShortAnsQn(description, answer));","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" if (showMessage) {","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" I have added the following question OwO:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S] %s\\n\", viewQuestionByIndex(getQuestionListSize()));","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":42,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":44,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException | QuizHubExceptions incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not input a proper question!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as short [question]/[answer]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":47,"author":{"gitId":"James-Hong-Jey"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":48,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":49,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":52,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints the details of a question in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":53,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":54,"author":{"gitId":"James-Hong-Jey"},"content":" * @param question The question in which details are to be printed.","lastModifiedDate":"2023-10-08"},{"lineNumber":55,"author":{"gitId":"James-Hong-Jey"},"content":" * @param asList If true, prints out the index of the question in the question list","lastModifiedDate":"2023-10-08"},{"lineNumber":56,"author":{"gitId":"James-Hong-Jey"},"content":" * in addition to the details of the question.","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"James-Hong-Jey"},"content":" public void printQuestion(Question question, boolean asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"James-Hong-Jey"},"content":" int qnIndex \u003d allQns.indexOf(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"James-Hong-Jey"},"content":" switch(question.getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"James-Hong-Jey"},"content":" if (question.questionIsDone()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" if(asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" %d: [S][X] %s\\n\", qnIndex+1, question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"James-Hong-Jey"},"content":" } else{","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S][X] %s\\n\", question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"James-Hong-Jey"},"content":" } else {","lastModifiedDate":"2023-10-08"},{"lineNumber":70,"author":{"gitId":"James-Hong-Jey"},"content":" if(asList){","lastModifiedDate":"2023-10-08"},{"lineNumber":71,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" %d: [S][] %s\\n\", qnIndex+1, question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":72,"author":{"gitId":"James-Hong-Jey"},"content":" } else{","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.printf(\" [S][] %s\\n\", question.getQuestionDescription());","lastModifiedDate":"2023-10-08"},{"lineNumber":74,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":75,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":76,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":77,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":78,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":79,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":80,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints all the questions in the current question list as an indexed list.","lastModifiedDate":"2023-10-08"},{"lineNumber":81,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":82,"author":{"gitId":"James-Hong-Jey"},"content":" public void printQuestionList(){","lastModifiedDate":"2023-10-08"},{"lineNumber":83,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":84,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No questions found! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":85,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":86,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":87,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":88,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":89,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":90,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":91,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":92,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":93,"author":{"gitId":"James-Hong-Jey"},"content":" * Mark a question in the current question list as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":95,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be marked as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":96,"author":{"gitId":"James-Hong-Jey"},"content":" * @param showMessage If true, program will print response message on CLI","lastModifiedDate":"2023-10-08"},{"lineNumber":97,"author":{"gitId":"James-Hong-Jey"},"content":" * after question is marked as done.","lastModifiedDate":"2023-10-08"},{"lineNumber":98,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":99,"author":{"gitId":"James-Hong-Jey"},"content":" public void markQuestionAsDone(int index, boolean showMessage){","lastModifiedDate":"2023-10-08"},{"lineNumber":100,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":101,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.get(index-1).markAsDone();","lastModifiedDate":"2023-10-08"},{"lineNumber":102,"author":{"gitId":"James-Hong-Jey"},"content":" if(showMessage) {","lastModifiedDate":"2023-10-08"},{"lineNumber":103,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index - 1);","lastModifiedDate":"2023-10-08"},{"lineNumber":104,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have marked the following question as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":106,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":107,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":109,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":110,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":111,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":112,"author":{"gitId":"James-Hong-Jey"},"content":" * Mark a question in the current question list as not done.","lastModifiedDate":"2023-10-08"},{"lineNumber":113,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":114,"author":{"gitId":"James-Hong-Jey"},"content":" public void markQuestionAsNotDone(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":115,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":116,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.get(index-1).markAsNotDone();","lastModifiedDate":"2023-10-08"},{"lineNumber":117,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":118,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have unmarked the following question as done \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":119,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":120,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":122,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":123,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":124,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":125,"author":{"gitId":"James-Hong-Jey"},"content":" * Delete a question from the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":126,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":127,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":128,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":129,"author":{"gitId":"James-Hong-Jey"},"content":" public void deleteQuestionByIndex(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":130,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":131,"author":{"gitId":"James-Hong-Jey"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":132,"author":{"gitId":"James-Hong-Jey"},"content":" allQns.remove(index - 1);","lastModifiedDate":"2023-10-08"},{"lineNumber":133,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Roger that! I have deleted the following question \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":134,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":135,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":136,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":137,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":138,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":139,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":140,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":141,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns the description and all other details of a question in one String object.","lastModifiedDate":"2023-10-08"},{"lineNumber":142,"author":{"gitId":"James-Hong-Jey"},"content":" * Used to display question details in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":143,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":144,"author":{"gitId":"James-Hong-Jey"},"content":" * @param index The list index of the question to be viewed.","lastModifiedDate":"2023-10-08"},{"lineNumber":145,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":146,"author":{"gitId":"James-Hong-Jey"},"content":" public String viewQuestionByIndex(int index){","lastModifiedDate":"2023-10-08"},{"lineNumber":147,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":148,"author":{"gitId":"James-Hong-Jey"},"content":" switch(allQns.get(index-1).getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":149,"author":{"gitId":"James-Hong-Jey"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":150,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns.get(index-1).getQuestionDescription();","lastModifiedDate":"2023-10-08"},{"lineNumber":151,"author":{"gitId":"James-Hong-Jey"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":152,"author":{"gitId":"James-Hong-Jey"},"content":" return \"Question Not Found\";","lastModifiedDate":"2023-10-08"},{"lineNumber":153,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":154,"author":{"gitId":"James-Hong-Jey"},"content":" } catch(NullPointerException | IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":155,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":156,"author":{"gitId":"James-Hong-Jey"},"content":" return \"Question Not Found\";","lastModifiedDate":"2023-10-08"},{"lineNumber":157,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":158,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":159,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":160,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":161,"author":{"gitId":"spinoandraptos"},"content":" * Delete a question from the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":162,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":163,"author":{"gitId":"spinoandraptos"},"content":" * @param index The list index of the question to be deleted.","lastModifiedDate":"2023-10-08"},{"lineNumber":164,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":165,"author":{"gitId":"spinoandraptos"},"content":" public void editQuestionByIndex(int index, String newDescription, String newAnswer){","lastModifiedDate":"2023-10-08"},{"lineNumber":166,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":167,"author":{"gitId":"spinoandraptos"},"content":" Question question \u003d allQns.get(index-1);","lastModifiedDate":"2023-10-08"},{"lineNumber":168,"author":{"gitId":"spinoandraptos"},"content":" question.editQuestion(newDescription, newAnswer);","lastModifiedDate":"2023-10-08"},{"lineNumber":169,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Roger that! I have edited the following question \u003ew\u003c !\");","lastModifiedDate":"2023-10-08"},{"lineNumber":170,"author":{"gitId":"spinoandraptos"},"content":" printQuestion(question, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":171,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Now you have \" + getQuestionListSize() + \" questions in the list! UWU\");","lastModifiedDate":"2023-10-08"},{"lineNumber":172,"author":{"gitId":"spinoandraptos"},"content":" } catch (IndexOutOfBoundsException invalidIndex){","lastModifiedDate":"2023-10-08"},{"lineNumber":173,"author":{"gitId":"spinoandraptos"},"content":" if(index !\u003d 0){","lastModifiedDate":"2023-10-08"},{"lineNumber":174,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! Please enter valid question number *sobs*\");","lastModifiedDate":"2023-10-08"},{"lineNumber":175,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":176,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":177,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":178,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":179,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for questions in the current question list using their description.","lastModifiedDate":"2023-10-08"},{"lineNumber":180,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":181,"author":{"gitId":"James-Hong-Jey"},"content":" * @param keyword Description keyword(s) used to search for matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":182,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":183,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchListByDescription(String keyword){","lastModifiedDate":"2023-10-08"},{"lineNumber":184,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e matchedQuestions \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":185,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":186,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":187,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":188,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":189,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Here are questions that matched your search:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":190,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":191,"author":{"gitId":"James-Hong-Jey"},"content":" if(question.getQuestionDescription().contains(keyword)){","lastModifiedDate":"2023-10-08"},{"lineNumber":192,"author":{"gitId":"James-Hong-Jey"},"content":" matchedQuestions.add(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":193,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":194,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":195,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":196,"author":{"gitId":"James-Hong-Jey"},"content":" if(matchedQuestions.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":197,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No results found :\u003c Check your keyword is correct?\");","lastModifiedDate":"2023-10-08"},{"lineNumber":198,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":199,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":200,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":201,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":202,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for questions in the current question list using their date and time.","lastModifiedDate":"2023-10-08"},{"lineNumber":203,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":204,"author":{"gitId":"James-Hong-Jey"},"content":" * @param dateTime Date and time used to search for matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":205,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":206,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchListByTime(String dateTime){","lastModifiedDate":"2023-10-08"},{"lineNumber":207,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e matchedQuestions \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":208,"author":{"gitId":"James-Hong-Jey"},"content":" if(allQns.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":209,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question list is empty! Time to add some OWO\");","lastModifiedDate":"2023-10-08"},{"lineNumber":210,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":211,"author":{"gitId":"James-Hong-Jey"},"content":" else {","lastModifiedDate":"2023-10-08"},{"lineNumber":212,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Here are questions that matched your search:\");","lastModifiedDate":"2023-10-08"},{"lineNumber":213,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question : allQns) {","lastModifiedDate":"2023-10-08"},{"lineNumber":214,"author":{"gitId":"James-Hong-Jey"},"content":" if(question.getQuestionTiming(true).contains(dateTime)){","lastModifiedDate":"2023-10-08"},{"lineNumber":215,"author":{"gitId":"James-Hong-Jey"},"content":" matchedQuestions.add(question);","lastModifiedDate":"2023-10-08"},{"lineNumber":216,"author":{"gitId":"James-Hong-Jey"},"content":" printQuestion(question, true);","lastModifiedDate":"2023-10-08"},{"lineNumber":217,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":218,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":219,"author":{"gitId":"James-Hong-Jey"},"content":" if(matchedQuestions.isEmpty()){","lastModifiedDate":"2023-10-08"},{"lineNumber":220,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" No results found :\u003c Check your time format is in dd-MM-yyyy HH:mm?\");","lastModifiedDate":"2023-10-08"},{"lineNumber":221,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":222,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":223,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":224,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":225,"author":{"gitId":"James-Hong-Jey"},"content":" * Search for a question in the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":226,"author":{"gitId":"James-Hong-Jey"},"content":" * Depending on user command, this method will search by","lastModifiedDate":"2023-10-08"},{"lineNumber":227,"author":{"gitId":"James-Hong-Jey"},"content":" * either description matches or time matches.","lastModifiedDate":"2023-10-08"},{"lineNumber":228,"author":{"gitId":"James-Hong-Jey"},"content":" *","lastModifiedDate":"2023-10-08"},{"lineNumber":229,"author":{"gitId":"James-Hong-Jey"},"content":" * @param input Full user command input.","lastModifiedDate":"2023-10-08"},{"lineNumber":230,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":231,"author":{"gitId":"James-Hong-Jey"},"content":" public void searchList(String input){","lastModifiedDate":"2023-10-08"},{"lineNumber":232,"author":{"gitId":"James-Hong-Jey"},"content":" String[] searchDetails;","lastModifiedDate":"2023-10-08"},{"lineNumber":233,"author":{"gitId":"James-Hong-Jey"},"content":" String[] searchInfo;","lastModifiedDate":"2023-10-08"},{"lineNumber":234,"author":{"gitId":"James-Hong-Jey"},"content":" try {","lastModifiedDate":"2023-10-08"},{"lineNumber":235,"author":{"gitId":"James-Hong-Jey"},"content":" searchDetails \u003d input.split(\"find\")[1].strip().split(\"/\");","lastModifiedDate":"2023-10-08"},{"lineNumber":236,"author":{"gitId":"James-Hong-Jey"},"content":" searchInfo \u003d searchDetails[1].strip().split(\" \");","lastModifiedDate":"2023-10-08"},{"lineNumber":237,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":238,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate if you are searching by description or time :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":239,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as find /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":240,"author":{"gitId":"James-Hong-Jey"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":241,"author":{"gitId":"James-Hong-Jey"},"content":" return;","lastModifiedDate":"2023-10-08"},{"lineNumber":242,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":243,"author":{"gitId":"James-Hong-Jey"},"content":" try{","lastModifiedDate":"2023-10-08"},{"lineNumber":244,"author":{"gitId":"James-Hong-Jey"},"content":" String searchCriteria \u003d searchInfo[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":245,"author":{"gitId":"James-Hong-Jey"},"content":" String searchKeyword \u003d searchInfo[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":246,"author":{"gitId":"James-Hong-Jey"},"content":" switch (searchCriteria){","lastModifiedDate":"2023-10-08"},{"lineNumber":247,"author":{"gitId":"James-Hong-Jey"},"content":" case \"description\":","lastModifiedDate":"2023-10-08"},{"lineNumber":248,"author":{"gitId":"James-Hong-Jey"},"content":" searchListByDescription(searchKeyword);","lastModifiedDate":"2023-10-08"},{"lineNumber":249,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":250,"author":{"gitId":"James-Hong-Jey"},"content":" case \"time\":","lastModifiedDate":"2023-10-08"},{"lineNumber":251,"author":{"gitId":"James-Hong-Jey"},"content":" searchListByTime(searchKeyword);","lastModifiedDate":"2023-10-08"},{"lineNumber":252,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":253,"author":{"gitId":"James-Hong-Jey"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":254,"author":{"gitId":"James-Hong-Jey"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":255,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":256,"author":{"gitId":"James-Hong-Jey"},"content":" } catch (ArrayIndexOutOfBoundsException incompleteCommand) {","lastModifiedDate":"2023-10-08"},{"lineNumber":257,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Ono! You did not indicate the keywords you are searching by :\u003c\");","lastModifiedDate":"2023-10-08"},{"lineNumber":258,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" Please format your input as find /description [description] \" +","lastModifiedDate":"2023-10-08"},{"lineNumber":259,"author":{"gitId":"James-Hong-Jey"},"content":" \"or find /time [time]!\");","lastModifiedDate":"2023-10-08"},{"lineNumber":260,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":261,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":262,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":263,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":264,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns the size of current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":265,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":266,"author":{"gitId":"James-Hong-Jey"},"content":" public int getQuestionListSize(){","lastModifiedDate":"2023-10-08"},{"lineNumber":267,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns.size();","lastModifiedDate":"2023-10-08"},{"lineNumber":268,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":269,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":270,"author":{"gitId":"James-Hong-Jey"},"content":" * Returns a list of all questions in the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":271,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":272,"author":{"gitId":"James-Hong-Jey"},"content":" public ArrayList\u003cQuestion\u003e getAllQns(){","lastModifiedDate":"2023-10-08"},{"lineNumber":273,"author":{"gitId":"James-Hong-Jey"},"content":" return allQns;","lastModifiedDate":"2023-10-08"},{"lineNumber":274,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":275,"author":{"gitId":"James-Hong-Jey"},"content":" /**","lastModifiedDate":"2023-10-08"},{"lineNumber":276,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new empty question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":277,"author":{"gitId":"James-Hong-Jey"},"content":" */","lastModifiedDate":"2023-10-08"},{"lineNumber":278,"author":{"gitId":"James-Hong-Jey"},"content":" public QuestionList(){","lastModifiedDate":"2023-10-08"},{"lineNumber":279,"author":{"gitId":"James-Hong-Jey"},"content":" allQns \u003d new ArrayList\u003cQuestion\u003e();","lastModifiedDate":"2023-10-08"},{"lineNumber":280,"author":{"gitId":"James-Hong-Jey"},"content":" }","lastModifiedDate":"2023-10-08"},{"lineNumber":281,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":282,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":283,"author":{"gitId":"yeo-menghan"},"content":" * Retrieves the answer for a question by its index in the question list.","lastModifiedDate":"2023-10-09"},{"lineNumber":284,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":285,"author":{"gitId":"yeo-menghan"},"content":" * @param index The index of the question in the list.","lastModifiedDate":"2023-10-09"},{"lineNumber":286,"author":{"gitId":"yeo-menghan"},"content":" * @return The answer to the question, or null if the index is invalid or the question is of a different type.","lastModifiedDate":"2023-10-09"},{"lineNumber":287,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":288,"author":{"gitId":"yeo-menghan"},"content":" public String getAnswerByIndex(int index) {","lastModifiedDate":"2023-10-09"},{"lineNumber":289,"author":{"gitId":"yeo-menghan"},"content":" try {","lastModifiedDate":"2023-10-09"},{"lineNumber":290,"author":{"gitId":"yeo-menghan"},"content":" Question question \u003d allQns.get(index - 1);","lastModifiedDate":"2023-10-09"},{"lineNumber":291,"author":{"gitId":"yeo-menghan"},"content":" if (question instanceof ShortAnsQn) {","lastModifiedDate":"2023-10-09"},{"lineNumber":292,"author":{"gitId":"yeo-menghan"},"content":" return ((ShortAnsQn) question).getQuestionAnswer();","lastModifiedDate":"2023-10-09"},{"lineNumber":293,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":294,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" This question is not a Short Answer question.\");","lastModifiedDate":"2023-10-09"},{"lineNumber":295,"author":{"gitId":"yeo-menghan"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":296,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":297,"author":{"gitId":"yeo-menghan"},"content":" } catch (IndexOutOfBoundsException invalidIndex) {","lastModifiedDate":"2023-10-09"},{"lineNumber":298,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Ono! Please enter a valid question number *sobs*\");","lastModifiedDate":"2023-10-09"},{"lineNumber":299,"author":{"gitId":"yeo-menghan"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":300,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":301,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":302,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":303,"author":{"gitId":"yeo-menghan"},"content":" * Starts a quiz session using the provided user interface (UI).","lastModifiedDate":"2023-10-09"},{"lineNumber":304,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":305,"author":{"gitId":"yeo-menghan"},"content":" * @param ui The user interface to interact with the user.","lastModifiedDate":"2023-10-09"},{"lineNumber":306,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":307,"author":{"gitId":"yeo-menghan"},"content":" public void startQuiz(Ui ui) {","lastModifiedDate":"2023-10-09"},{"lineNumber":308,"author":{"gitId":"yeo-menghan"},"content":" if (allQns.isEmpty()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":309,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" No questions found! Add questions before starting the quiz.\");","lastModifiedDate":"2023-10-09"},{"lineNumber":310,"author":{"gitId":"yeo-menghan"},"content":" return;","lastModifiedDate":"2023-10-09"},{"lineNumber":311,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":312,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":313,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Starting the quiz...\");","lastModifiedDate":"2023-10-09"},{"lineNumber":314,"author":{"gitId":"yeo-menghan"},"content":" int totalQuestions \u003d allQns.size();","lastModifiedDate":"2023-10-09"},{"lineNumber":315,"author":{"gitId":"yeo-menghan"},"content":" int correctAnswers \u003d 0;","lastModifiedDate":"2023-10-09"},{"lineNumber":316,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":317,"author":{"gitId":"yeo-menghan"},"content":" for (int i \u003d 0; i \u003c totalQuestions; i++) {","lastModifiedDate":"2023-10-09"},{"lineNumber":318,"author":{"gitId":"yeo-menghan"},"content":" Question question \u003d allQns.get(i);","lastModifiedDate":"2023-10-09"},{"lineNumber":319,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":320,"author":{"gitId":"yeo-menghan"},"content":" ui.displayQuestion(question, i + 1, totalQuestions);","lastModifiedDate":"2023-10-09"},{"lineNumber":321,"author":{"gitId":"yeo-menghan"},"content":" String correctAnswer \u003d getAnswerByIndex(i + 1); // Get the correct answer by index","lastModifiedDate":"2023-10-09"},{"lineNumber":322,"author":{"gitId":"yeo-menghan"},"content":" String userAnswer \u003d ui.getUserInput();","lastModifiedDate":"2023-10-09"},{"lineNumber":323,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":324,"author":{"gitId":"yeo-menghan"},"content":" if (userAnswer.equalsIgnoreCase(correctAnswer)) {","lastModifiedDate":"2023-10-09"},{"lineNumber":325,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Correct!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":326,"author":{"gitId":"yeo-menghan"},"content":" correctAnswers++;","lastModifiedDate":"2023-10-09"},{"lineNumber":327,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":328,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Wrong!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":329,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":330,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":331,"author":{"gitId":"yeo-menghan"},"content":" int questionsLeft \u003d totalQuestions - (i + 1);","lastModifiedDate":"2023-10-09"},{"lineNumber":332,"author":{"gitId":"yeo-menghan"},"content":" if (questionsLeft \u003e 0) {","lastModifiedDate":"2023-10-09"},{"lineNumber":333,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Questions left: \" + questionsLeft);","lastModifiedDate":"2023-10-09"},{"lineNumber":334,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":335,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Quiz completed!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":336,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":337,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":338,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Your score: \" + correctAnswers + \"/\" + totalQuestions);","lastModifiedDate":"2023-10-09"},{"lineNumber":339,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":340,"author":{"gitId":"James-Hong-Jey"},"content":"}","lastModifiedDate":"2023-10-08"}],"authorContributionMap":{"spinoandraptos":31,"James-Hong-Jey":249,"yeo-menghan":60}},{"path":"src/main/java/quizhub/storage/Storage.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-08"},{"lineNumber":3,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":4,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":5,"author":{"gitId":"spinoandraptos"},"content":"import java.io.File;","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"import java.io.FileWriter;","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.io.IOException;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" * Represents the hard disk storage where","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"James-Hong-Jey"},"content":" * question data is stored, read and updated.","lastModifiedDate":"2023-10-08"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":"public class Storage {","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"spinoandraptos"},"content":" private File dataFile;","lastModifiedDate":"2023-10-04"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"James-Hong-Jey"},"content":" * Creates a new storage for storing question data.","lastModifiedDate":"2023-10-08"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is stored and read from.","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"spinoandraptos"},"content":" public Storage(String filePath) {","lastModifiedDate":"2023-10-04"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" dataFile \u003d new File(filePath);","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * Write in new data to storage.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" * @param filePath The file location in hard disk where data is written to.","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"spinoandraptos"},"content":" * @param textToAdd Data to be written.","lastModifiedDate":"2023-10-04"},{"lineNumber":29,"author":{"gitId":"spinoandraptos"},"content":" * @param toAppend If true, new data is added to the back of existing data instead of overwriting them.","lastModifiedDate":"2023-10-04"},{"lineNumber":30,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":31,"author":{"gitId":"spinoandraptos"},"content":" private void writeToFile(String filePath, String textToAdd, boolean toAppend) throws IOException {","lastModifiedDate":"2023-10-04"},{"lineNumber":32,"author":{"gitId":"spinoandraptos"},"content":" FileWriter fileWriter \u003d new FileWriter(filePath, toAppend);","lastModifiedDate":"2023-10-04"},{"lineNumber":33,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.write(textToAdd);","lastModifiedDate":"2023-10-04"},{"lineNumber":34,"author":{"gitId":"spinoandraptos"},"content":" fileWriter.close();","lastModifiedDate":"2023-10-04"},{"lineNumber":35,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":36,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":37,"author":{"gitId":"James-Hong-Jey"},"content":" * Build a new question list from data stored in hard disk.","lastModifiedDate":"2023-10-08"},{"lineNumber":38,"author":{"gitId":"James-Hong-Jey"},"content":" * Used at program start to build the current question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":39,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":40,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list to be built.","lastModifiedDate":"2023-10-08"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"James-Hong-Jey"},"content":" public void buildCurrentListFromFile(QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" if (dataFile.createNewFile()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" Question-list created: \" + dataFile.getName());","lastModifiedDate":"2023-10-08"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" } catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"James-Hong-Jey"},"content":" int questionIndex \u003d 0;","lastModifiedDate":"2023-10-08"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" try {","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" Scanner fileScanner \u003d new Scanner(dataFile);","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" if (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" fileScanner.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" while (fileScanner.hasNext()) {","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"James-Hong-Jey"},"content":" questionIndex++;","lastModifiedDate":"2023-10-08"},{"lineNumber":57,"author":{"gitId":"James-Hong-Jey"},"content":" String nextQuestion \u003d fileScanner.nextLine();","lastModifiedDate":"2023-10-08"},{"lineNumber":58,"author":{"gitId":"James-Hong-Jey"},"content":" String[] questionSubStrings \u003d nextQuestion.split(\"\\\\|\");","lastModifiedDate":"2023-10-08"},{"lineNumber":59,"author":{"gitId":"James-Hong-Jey"},"content":" String questionType \u003d questionSubStrings[0].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":60,"author":{"gitId":"James-Hong-Jey"},"content":" String questionDoneStatus \u003d questionSubStrings[1].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":61,"author":{"gitId":"James-Hong-Jey"},"content":" String questionDescription \u003d questionSubStrings[2].strip();","lastModifiedDate":"2023-10-08"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"James-Hong-Jey"},"content":" // TODO : change this entire code chunk, right now they\u0027re all default","lastModifiedDate":"2023-10-08"},{"lineNumber":64,"author":{"gitId":"James-Hong-Jey"},"content":" switch (questionType) {","lastModifiedDate":"2023-10-08"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" case \"S\": questions.addToQuestionList(\"short \" + questionDescription,","lastModifiedDate":"2023-10-08"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" Question.qnType.SHORTANSWER, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":67,"author":{"gitId":"James-Hong-Jey"},"content":" if (questionDoneStatus.equals(\"done\")) {","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"James-Hong-Jey"},"content":" questions.markQuestionAsDone(questionIndex, false);","lastModifiedDate":"2023-10-08"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-04"},{"lineNumber":72,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(nextQuestion);","lastModifiedDate":"2023-10-08"},{"lineNumber":73,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":74,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":75,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":76,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":77,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":78,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":79,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":80,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":81,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":82,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":83,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":84,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":85,"author":{"gitId":"James-Hong-Jey"},"content":" * Build a new question list from data stored in hard disk.","lastModifiedDate":"2023-10-08"},{"lineNumber":86,"author":{"gitId":"James-Hong-Jey"},"content":" * Prints out the questions in the list in CLI.","lastModifiedDate":"2023-10-08"},{"lineNumber":87,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":88,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list that has been built.","lastModifiedDate":"2023-10-08"},{"lineNumber":89,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":90,"author":{"gitId":"James-Hong-Jey"},"content":" public void loadData(QuestionList questions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":91,"author":{"gitId":"James-Hong-Jey"},"content":" buildCurrentListFromFile(questions);","lastModifiedDate":"2023-10-08"},{"lineNumber":92,"author":{"gitId":"James-Hong-Jey"},"content":" if (questions.getQuestionListSize() \u003e 0) {","lastModifiedDate":"2023-10-08"},{"lineNumber":93,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" You currently have the following questions uWu\");","lastModifiedDate":"2023-10-08"},{"lineNumber":94,"author":{"gitId":"James-Hong-Jey"},"content":" questions.printQuestionList();","lastModifiedDate":"2023-10-08"},{"lineNumber":95,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":96,"author":{"gitId":"James-Hong-Jey"},"content":" System.out.println(\" You currently have no saved questions uWu\");","lastModifiedDate":"2023-10-08"},{"lineNumber":97,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":98,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":99,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":100,"author":{"gitId":"spinoandraptos"},"content":" * Overwrites all existing data in storage with","lastModifiedDate":"2023-10-04"},{"lineNumber":101,"author":{"gitId":"James-Hong-Jey"},"content":" * the current questions in the question list.","lastModifiedDate":"2023-10-08"},{"lineNumber":102,"author":{"gitId":"James-Hong-Jey"},"content":" * Used after every question change and on program termination.","lastModifiedDate":"2023-10-08"},{"lineNumber":103,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":104,"author":{"gitId":"James-Hong-Jey"},"content":" * @param questions The question list to overwrite current data with.","lastModifiedDate":"2023-10-08"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":106,"author":{"gitId":"James-Hong-Jey"},"content":" public void updateData(QuestionList questions){","lastModifiedDate":"2023-10-08"},{"lineNumber":107,"author":{"gitId":"spinoandraptos"},"content":" try{","lastModifiedDate":"2023-10-04"},{"lineNumber":108,"author":{"gitId":"spinoandraptos"},"content":" //flush all current records","lastModifiedDate":"2023-10-04"},{"lineNumber":109,"author":{"gitId":"James-Hong-Jey"},"content":" writeToFile(dataFile.getPath(), \"Latest Questions\" + System.lineSeparator(), false);","lastModifiedDate":"2023-10-08"},{"lineNumber":110,"author":{"gitId":"James-Hong-Jey"},"content":" ArrayList\u003cQuestion\u003e allQuestions \u003d questions.getAllQns();","lastModifiedDate":"2023-10-08"},{"lineNumber":111,"author":{"gitId":"James-Hong-Jey"},"content":" for (Question question: allQuestions) {","lastModifiedDate":"2023-10-08"},{"lineNumber":112,"author":{"gitId":"James-Hong-Jey"},"content":" switch (question.getQuestionType()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":113,"author":{"gitId":"spinoandraptos"},"content":" case SHORTANSWER:","lastModifiedDate":"2023-10-08"},{"lineNumber":114,"author":{"gitId":"James-Hong-Jey"},"content":" if (question.questionIsDone()) {","lastModifiedDate":"2023-10-08"},{"lineNumber":115,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"S | done | \" + question.getQuestionDescription()","lastModifiedDate":"2023-10-08"},{"lineNumber":116,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":117,"author":{"gitId":"spinoandraptos"},"content":" } else {","lastModifiedDate":"2023-10-04"},{"lineNumber":118,"author":{"gitId":"spinoandraptos"},"content":" writeToFile(dataFile.getPath(), \"S | undone | \" + question.getQuestionDescription()","lastModifiedDate":"2023-10-08"},{"lineNumber":119,"author":{"gitId":"spinoandraptos"},"content":" + System.lineSeparator(), true);","lastModifiedDate":"2023-10-04"},{"lineNumber":120,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":121,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-04"},{"lineNumber":122,"author":{"gitId":"James-Hong-Jey"},"content":"","lastModifiedDate":"2023-10-08"},{"lineNumber":123,"author":{"gitId":"spinoandraptos"},"content":" default:","lastModifiedDate":"2023-10-08"},{"lineNumber":124,"author":{"gitId":"spinoandraptos"},"content":" break;","lastModifiedDate":"2023-10-08"},{"lineNumber":125,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":126,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":127,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":128,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":129,"author":{"gitId":"spinoandraptos"},"content":" catch(NullPointerException | IOException invalidFilePath){","lastModifiedDate":"2023-10-04"},{"lineNumber":130,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" \" + invalidFilePath.getMessage());","lastModifiedDate":"2023-10-04"},{"lineNumber":131,"author":{"gitId":"spinoandraptos"},"content":" System.out.println(\" ____________________________________________________________\");","lastModifiedDate":"2023-10-04"},{"lineNumber":132,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":133,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":134,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":93,"James-Hong-Jey":40,"lisizhuang-0121":1}},{"path":"src/main/java/quizhub/ui/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"lisizhuang-0121"},"content":"package quizhub.ui;","lastModifiedDate":"2023-10-05"},{"lineNumber":2,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":3,"author":{"gitId":"lisizhuang-0121"},"content":"import quizhub.storage.Storage;","lastModifiedDate":"2023-10-05"},{"lineNumber":4,"author":{"gitId":"James-Hong-Jey"},"content":"import quizhub.questionlist.QuestionList;","lastModifiedDate":"2023-10-08"},{"lineNumber":5,"author":{"gitId":"yeo-menghan"},"content":"import quizhub.question.Question;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"spinoandraptos"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"spinoandraptos"},"content":"/**","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"spinoandraptos"},"content":" * Represents the user interface for CLI displays.","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"spinoandraptos"},"content":" * Supports CLI interactions with users.","lastModifiedDate":"2023-10-04"},{"lineNumber":11,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":12,"author":{"gitId":"spinoandraptos"},"content":"public class Ui {","lastModifiedDate":"2023-10-04"},{"lineNumber":13,"author":{"gitId":"spinoandraptos"},"content":" private final Scanner input \u003d new Scanner(System.in); // Create a Scanner object","lastModifiedDate":"2023-10-04"},{"lineNumber":14,"author":{"gitId":"spinoandraptos"},"content":" private Storage dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":15,"author":{"gitId":"James-Hong-Jey"},"content":" private QuestionList tasks;","lastModifiedDate":"2023-10-08"},{"lineNumber":16,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":17,"author":{"gitId":"spinoandraptos"},"content":" * Print out separating line in CLI to mark","lastModifiedDate":"2023-10-04"},{"lineNumber":18,"author":{"gitId":"spinoandraptos"},"content":" * start and end of chatbot replies.","lastModifiedDate":"2023-10-04"},{"lineNumber":19,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":20,"author":{"gitId":"spinoandraptos"},"content":" public void showLine(){","lastModifiedDate":"2023-10-04"},{"lineNumber":21,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" ____________________________________________________________\\n\");","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":23,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":24,"author":{"gitId":"StevenGX12"},"content":" * Displays app logo and opening message to welcome users","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"spinoandraptos"},"content":" * on the launch of chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":26,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":27,"author":{"gitId":"spinoandraptos"},"content":" public void displayOpeningMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":28,"author":{"gitId":"StevenGX12"},"content":" String logo \u003d \" _______ _________ _______ ______ \\n\" + ","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"StevenGX12"},"content":" \" ( ___ )|\\\\ /|\\\\__ __// ___ )|\\\\ /||\\\\ /|( ___ \\\\ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"StevenGX12"},"content":" \" | ( ) || ) ( | ) ( \\\\/ ) || ) ( || ) ( || ( ) )\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"StevenGX12"},"content":" \" | | | || | | | | | / )| (___) || | | || (__/ / \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"StevenGX12"},"content":" \" | | | || | | | | | / / | ___ || | | || __ ( \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"StevenGX12"},"content":" \" | | /\\\\| || | | | | | / / | ( ) || | | || ( \\\\ \\\\ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"StevenGX12"},"content":" \" | (_\\\\ \\\\ || (___) |___) (___ / (_/\\\\| ) ( || (___) || )___) )\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"StevenGX12"},"content":" \" (____\\\\/_)(_______)\\\\_______/(_______/|/ \\\\|(_______)|/ \\\\___/\";","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"StevenGX12"},"content":" System.out.println(logo);","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":38,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" Welcome to Quizhub!!!\\n\");","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" Let the quizzing begin XDD\");","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"spinoandraptos"},"content":" System.out.println();","lastModifiedDate":"2023-10-04"},{"lineNumber":41,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.loadData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":42,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":43,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":44,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":45,"author":{"gitId":"spinoandraptos"},"content":" * Retrieves the CLI input from the user","lastModifiedDate":"2023-10-04"},{"lineNumber":46,"author":{"gitId":"spinoandraptos"},"content":" * and documents it as a String object.","lastModifiedDate":"2023-10-04"},{"lineNumber":47,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":48,"author":{"gitId":"spinoandraptos"},"content":" public String readCommand() {","lastModifiedDate":"2023-10-04"},{"lineNumber":49,"author":{"gitId":"spinoandraptos"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":50,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":51,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":52,"author":{"gitId":"spinoandraptos"},"content":" * Displays closing message on exiting the chatbot.","lastModifiedDate":"2023-10-04"},{"lineNumber":53,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":54,"author":{"gitId":"spinoandraptos"},"content":" public void displayClosingMessage(){","lastModifiedDate":"2023-10-04"},{"lineNumber":55,"author":{"gitId":"spinoandraptos"},"content":" dataStorage.updateData(tasks);","lastModifiedDate":"2023-10-04"},{"lineNumber":56,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" Are you sure you want to stop quizzing?\");","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" Well... hope you had fun quizzing :D\");","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"StevenGX12"},"content":" System.out.println(\" See you again soon!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"spinoandraptos"},"content":" showLine();","lastModifiedDate":"2023-10-04"},{"lineNumber":60,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":61,"author":{"gitId":"spinoandraptos"},"content":" /**","lastModifiedDate":"2023-10-04"},{"lineNumber":62,"author":{"gitId":"spinoandraptos"},"content":" * Sets up the bridging between the UI and tasks data.","lastModifiedDate":"2023-10-04"},{"lineNumber":63,"author":{"gitId":"spinoandraptos"},"content":" *","lastModifiedDate":"2023-10-04"},{"lineNumber":64,"author":{"gitId":"spinoandraptos"},"content":" * @param tasks A record of all tasks documented that is built on program start and disposed on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":65,"author":{"gitId":"spinoandraptos"},"content":" * @param dataStorage The hard disk record of all tasks documented that persists even on program exit.","lastModifiedDate":"2023-10-04"},{"lineNumber":66,"author":{"gitId":"spinoandraptos"},"content":" */","lastModifiedDate":"2023-10-04"},{"lineNumber":67,"author":{"gitId":"James-Hong-Jey"},"content":" public Ui(Storage dataStorage, QuestionList tasks){","lastModifiedDate":"2023-10-08"},{"lineNumber":68,"author":{"gitId":"spinoandraptos"},"content":" this.dataStorage \u003d dataStorage;","lastModifiedDate":"2023-10-04"},{"lineNumber":69,"author":{"gitId":"spinoandraptos"},"content":" this.tasks \u003d tasks;","lastModifiedDate":"2023-10-04"},{"lineNumber":70,"author":{"gitId":"spinoandraptos"},"content":" }","lastModifiedDate":"2023-10-04"},{"lineNumber":71,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":72,"author":{"gitId":"yeo-menghan"},"content":" * Displays a question along with its index in a set of questions and the total count of questions.","lastModifiedDate":"2023-10-09"},{"lineNumber":73,"author":{"gitId":"yeo-menghan"},"content":" * Extracts and displays the question part from the question description, which is in the \"question/answer\" format.","lastModifiedDate":"2023-10-09"},{"lineNumber":74,"author":{"gitId":"yeo-menghan"},"content":" * If the format is invalid or missing, it prompts the user to edit the question via the edit function.","lastModifiedDate":"2023-10-09"},{"lineNumber":75,"author":{"gitId":"yeo-menghan"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":76,"author":{"gitId":"yeo-menghan"},"content":" * @param question The Question object containing the question description.","lastModifiedDate":"2023-10-09"},{"lineNumber":77,"author":{"gitId":"yeo-menghan"},"content":" * @param currentQuestionIndex The index of the current question in the set of questions.","lastModifiedDate":"2023-10-09"},{"lineNumber":78,"author":{"gitId":"yeo-menghan"},"content":" * @param totalQuestions The total count of questions in the set.","lastModifiedDate":"2023-10-09"},{"lineNumber":79,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":80,"author":{"gitId":"yeo-menghan"},"content":" public void displayQuestion(Question question, int currentQuestionIndex, int totalQuestions) {","lastModifiedDate":"2023-10-09"},{"lineNumber":81,"author":{"gitId":"yeo-menghan"},"content":" showLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":82,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Question \" + currentQuestionIndex + \" / \" + totalQuestions + \":\");","lastModifiedDate":"2023-10-09"},{"lineNumber":83,"author":{"gitId":"yeo-menghan"},"content":" String questionDescription \u003d question.getQuestionDescription(); // getQuestionDescription returns question/answer","lastModifiedDate":"2023-10-09"},{"lineNumber":84,"author":{"gitId":"yeo-menghan"},"content":" String[] parts \u003d questionDescription.split(\"/\");","lastModifiedDate":"2023-10-09"},{"lineNumber":85,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":86,"author":{"gitId":"yeo-menghan"},"content":" if (parts.length \u003e\u003d 1) {","lastModifiedDate":"2023-10-09"},{"lineNumber":87,"author":{"gitId":"yeo-menghan"},"content":" // Extract and display the question part","lastModifiedDate":"2023-10-09"},{"lineNumber":88,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" \" + parts[0]); // part[0] returns the question part","lastModifiedDate":"2023-10-09"},{"lineNumber":89,"author":{"gitId":"yeo-menghan"},"content":" } else {","lastModifiedDate":"2023-10-09"},{"lineNumber":90,"author":{"gitId":"yeo-menghan"},"content":" // Handle the case where the format is invalid","lastModifiedDate":"2023-10-09"},{"lineNumber":91,"author":{"gitId":"yeo-menghan"},"content":" System.out.println(\" Invalid question format, please edit this question via the edit function\");","lastModifiedDate":"2023-10-09"},{"lineNumber":92,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":93,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":94,"author":{"gitId":"yeo-menghan"},"content":" System.out.print(\" Your Answer: \");","lastModifiedDate":"2023-10-09"},{"lineNumber":95,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":96,"author":{"gitId":"yeo-menghan"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":97,"author":{"gitId":"yeo-menghan"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":98,"author":{"gitId":"yeo-menghan"},"content":" * duplication of readCommand for readability","lastModifiedDate":"2023-10-09"},{"lineNumber":99,"author":{"gitId":"yeo-menghan"},"content":" * @return","lastModifiedDate":"2023-10-09"},{"lineNumber":100,"author":{"gitId":"yeo-menghan"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":101,"author":{"gitId":"yeo-menghan"},"content":" public String getUserInput() {","lastModifiedDate":"2023-10-09"},{"lineNumber":102,"author":{"gitId":"yeo-menghan"},"content":" return input.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":103,"author":{"gitId":"yeo-menghan"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":104,"author":{"gitId":"spinoandraptos"},"content":"}","lastModifiedDate":"2023-10-04"},{"lineNumber":105,"author":{"gitId":"spinoandraptos"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"spinoandraptos":50,"StevenGX12":16,"James-Hong-Jey":3,"yeo-menghan":34,"lisizhuang-0121":2}}] diff --git a/AY2324S1-CS2113-W12-1_tp_master/commits.json b/AY2324S1-CS2113-W12-1_tp_master/commits.json index 59756bb..ae1a85a 100644 --- a/AY2324S1-CS2113-W12-1_tp_master/commits.json +++ b/AY2324S1-CS2113-W12-1_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"spinoandraptos":[{"date":"2023-10-04","commitResults":[{"hash":"6c6d1698f76fbc9d508f95105074ab9f2110d65c","isMergeCommit":true,"messageTitle":"Merge pull request #3 from StevenGX12/master","messageBody":"Add Guan Xiao","fileTypesAndContributionMap":{}},{"hash":"df29befffe396116433778af88e0a3623bece7fc","isMergeCommit":false,"messageTitle":"add Juncheng","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":6}}},{"hash":"419f657d64069e11fed53b7deb272799c0cf26f6","isMergeCommit":false,"messageTitle":"Refactoring","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1335,"deletions":21}}},{"hash":"7d646598095de5b46119f52d8328c6dcbe88e668","isMergeCommit":true,"messageTitle":"Merge pull request #6 from spinoandraptos/master","messageBody":"Refactoring","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"84ed7d900a90383cf0be6bb3cf33621d45496623","isMergeCommit":true,"messageTitle":"Merge pull request #8 from James-Hong-Jey/master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"174c6b202404b7d3e4890aea3b763a50171dff07","isMergeCommit":true,"messageTitle":"Merge pull request #9 from James-Hong-Jey/master","messageBody":"Add CommandShortAnswer, Update Parser","fileTypesAndContributionMap":{}},{"hash":"3189b597a50f04c45de9a88523964aeeb1bdcb7f","isMergeCommit":false,"messageTitle":"Added CommandEdit, Implemented Storage","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":154,"deletions":112},"other":{"insertions":3,"deletions":3}}}]}],"StevenGX12":[{"date":"2023-10-04","commitResults":[{"hash":"89a5fcaa30ce7cd31fe47503bb2873226575c6b8","isMergeCommit":true,"messageTitle":"Merge pull request #2 from James-Hong-Jey/master","messageBody":"Add James","fileTypesAndContributionMap":{}},{"hash":"9dc6e6889ff581686f9e040603ee748d51c37b1a","isMergeCommit":false,"messageTitle":"added Guan Xiao AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"e43a7268e881e66880f125a55ba992a5659e1637","isMergeCommit":true,"messageTitle":"resolved merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5794b6bc163b412507ec00d46d2f9627c6a034f7","isMergeCommit":true,"messageTitle":"Merge pull request #5 from lisizhuang-0121/master","messageBody":"Update aboutus.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"6dde24d6485345dc3c3bce285aa3370f4c826f7c","isMergeCommit":true,"messageTitle":"Merge pull request #12 from yeo-menghan/branch-QuizMode","messageBody":"Branch quiz mode","fileTypesAndContributionMap":{}}]}],"yeo-menghan":[{"date":"2023-10-04","commitResults":[{"hash":"437a578d991ab42603936e351239623440e806c8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"Change from Duke to QuizHub on ReadMe","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"96293a9443789434cf941b15cdebf0bbfa57d745","isMergeCommit":false,"messageTitle":"Add personal details(Meng Han) on AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"568326efb68a7553262bf268501d90613739f023","isMergeCommit":true,"messageTitle":"Merge pull request #4 from spinoandraptos/master","messageBody":"add Juncheng","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"908207acef2fd89a00b4a74737adf8ded8a80145","isMergeCommit":true,"messageTitle":"Merge pull request #10 from AY2324S1-CS2113-W12-1/CommandEdit-and-Storage","messageBody":"Added CommandEdit, Implemented Storage","fileTypesAndContributionMap":{}},{"hash":"53259b048ec950c253cbc566fedba93fdad0d2f7","isMergeCommit":false,"messageTitle":"Add quiz mode with Start command - known bug: displaying both Question \u0026 Answer","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":83,"deletions":2}}},{"hash":"afbcce9d71aef01eec2235c69a34d0fe5ad737cb","isMergeCommit":false,"messageTitle":"Implement v1.0 start quiz mode - hide answer when displaying question","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":37,"deletions":17}}}]}],"James-Hong-Jey":[{"date":"2023-10-04","commitResults":[{"hash":"cfa71b85ff164366845684af16d070e31ea60359","isMergeCommit":false,"messageTitle":"Change aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"ff15f0850b54fd060d30b9efb9967fc1e0d9ab18","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"59726e824ebe24615b40411cb772b0cd1af4b63f","isMergeCommit":true,"messageTitle":"Merge pull request #7 from lisizhuang-0121/master","messageBody":"Refactor code to align with QuizHub code structure.","fileTypesAndContributionMap":{}},{"hash":"5781673f896f0c94d455e6f90bd81064a2b60c5d","isMergeCommit":false,"messageTitle":"Change Task words to Question, Comment out old code","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":388,"deletions":382}}},{"hash":"6ae2d08763bc68f7ce450755d3341b498a8f2075","isMergeCommit":false,"messageTitle":"Add CommandShortAnswer, remove redundancies","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":31,"deletions":38},"other":{"insertions":6,"deletions":6}}}]}],"lisizhuang-0121":[{"date":"2023-10-04","commitResults":[{"hash":"db4924094e6d09cacbe80b263645d4f6e6778802","isMergeCommit":true,"messageTitle":"Merge pull request #1 from yeo-menghan/master","messageBody":"Add personal details(Meng Han) on AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"7398eac81f0be5e14293d06439587f84e7cea114","isMergeCommit":false,"messageTitle":"Update aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]},{"date":"2023-10-05","commitResults":[{"hash":"be1e01236a2a636b43c835c00d65832c606e7b06","isMergeCommit":false,"messageTitle":"Refactor code to align with QuizHub code structure.","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":65,"deletions":243},"other":{"insertions":99,"deletions":105}}},{"hash":"815456aa4e9a69f2359c634ce6d3183d0ca11172","isMergeCommit":false,"messageTitle":"Refactor and rename classes for better readability","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":274,"deletions":462},"other":{"insertions":9,"deletions":9}}}]}]},"authorFileTypeContributionMap":{"spinoandraptos":{"docs":1,"functional-code":558,"test-code":0},"StevenGX12":{"docs":1,"functional-code":0,"test-code":0},"yeo-menghan":{"docs":2,"functional-code":103,"test-code":0},"James-Hong-Jey":{"docs":1,"functional-code":362,"test-code":0},"lisizhuang-0121":{"docs":2,"functional-code":82,"test-code":0}},"authorContributionVariance":{"spinoandraptos":99776.99,"StevenGX12":0.20987657,"yeo-menghan":1013.45984,"James-Hong-Jey":37987.9,"lisizhuang-0121":83996.09},"authorDisplayNameMap":{"spinoandraptos":"CS2113-W12-1 MAN ..HENG","StevenGX12":"CS2113-W12-1 GUAN..XIAO","yeo-menghan":"CS2113-W12-1 YEO .. HAN","James-Hong-Jey":"CS2113-W12-1 JAME.. JEY","lisizhuang-0121":"CS2113-W12-1 LI S..UANG"}} +{"authorDailyContributionsMap":{"spinoandraptos":[{"date":"2023-10-04","commitResults":[{"hash":"6c6d1698f76fbc9d508f95105074ab9f2110d65c","isMergeCommit":true,"messageTitle":"Merge pull request #3 from StevenGX12/master","messageBody":"Add Guan Xiao","fileTypesAndContributionMap":{}},{"hash":"df29befffe396116433778af88e0a3623bece7fc","isMergeCommit":false,"messageTitle":"add Juncheng","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":6,"deletions":6}}},{"hash":"419f657d64069e11fed53b7deb272799c0cf26f6","isMergeCommit":false,"messageTitle":"Refactoring","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1335,"deletions":21}}},{"hash":"7d646598095de5b46119f52d8328c6dcbe88e668","isMergeCommit":true,"messageTitle":"Merge pull request #6 from spinoandraptos/master","messageBody":"Refactoring","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"84ed7d900a90383cf0be6bb3cf33621d45496623","isMergeCommit":true,"messageTitle":"Merge pull request #8 from James-Hong-Jey/master","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"174c6b202404b7d3e4890aea3b763a50171dff07","isMergeCommit":true,"messageTitle":"Merge pull request #9 from James-Hong-Jey/master","messageBody":"Add CommandShortAnswer, Update Parser","fileTypesAndContributionMap":{}},{"hash":"3189b597a50f04c45de9a88523964aeeb1bdcb7f","isMergeCommit":false,"messageTitle":"Added CommandEdit, Implemented Storage","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":154,"deletions":112},"other":{"insertions":3,"deletions":3}}}]}],"StevenGX12":[{"date":"2023-10-04","commitResults":[{"hash":"89a5fcaa30ce7cd31fe47503bb2873226575c6b8","isMergeCommit":true,"messageTitle":"Merge pull request #2 from James-Hong-Jey/master","messageBody":"Add James","fileTypesAndContributionMap":{}},{"hash":"9dc6e6889ff581686f9e040603ee748d51c37b1a","isMergeCommit":false,"messageTitle":"added Guan Xiao AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"e43a7268e881e66880f125a55ba992a5659e1637","isMergeCommit":true,"messageTitle":"resolved merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5794b6bc163b412507ec00d46d2f9627c6a034f7","isMergeCommit":true,"messageTitle":"Merge pull request #5 from lisizhuang-0121/master","messageBody":"Update aboutus.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"6dde24d6485345dc3c3bce285aa3370f4c826f7c","isMergeCommit":true,"messageTitle":"Merge pull request #12 from yeo-menghan/branch-QuizMode","messageBody":"Branch quiz mode","fileTypesAndContributionMap":{}},{"hash":"919bffd25b6508283eb156867e2dc13853958696","isMergeCommit":false,"messageTitle":"updated UI and help command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":33,"deletions":12}}}]}],"yeo-menghan":[{"date":"2023-10-04","commitResults":[{"hash":"437a578d991ab42603936e351239623440e806c8","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"Change from Duke to QuizHub on ReadMe","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"96293a9443789434cf941b15cdebf0bbfa57d745","isMergeCommit":false,"messageTitle":"Add personal details(Meng Han) on AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"568326efb68a7553262bf268501d90613739f023","isMergeCommit":true,"messageTitle":"Merge pull request #4 from spinoandraptos/master","messageBody":"add Juncheng","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"908207acef2fd89a00b4a74737adf8ded8a80145","isMergeCommit":true,"messageTitle":"Merge pull request #10 from AY2324S1-CS2113-W12-1/CommandEdit-and-Storage","messageBody":"Added CommandEdit, Implemented Storage","fileTypesAndContributionMap":{}},{"hash":"53259b048ec950c253cbc566fedba93fdad0d2f7","isMergeCommit":false,"messageTitle":"Add quiz mode with Start command - known bug: displaying both Question \u0026 Answer","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":83,"deletions":2}}},{"hash":"afbcce9d71aef01eec2235c69a34d0fe5ad737cb","isMergeCommit":false,"messageTitle":"Implement v1.0 start quiz mode - hide answer when displaying question","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":37,"deletions":17}}}]},{"date":"2023-10-11","commitResults":[{"hash":"37435c2000856c832080cfb16ba748d83ee56dee","isMergeCommit":true,"messageTitle":"Merge pull request #13 from StevenGX12/branch-feature-ui","messageBody":"updated UI and help command","fileTypesAndContributionMap":{}}]}],"James-Hong-Jey":[{"date":"2023-10-04","commitResults":[{"hash":"cfa71b85ff164366845684af16d070e31ea60359","isMergeCommit":false,"messageTitle":"Change aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"ff15f0850b54fd060d30b9efb9967fc1e0d9ab18","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-08","commitResults":[{"hash":"59726e824ebe24615b40411cb772b0cd1af4b63f","isMergeCommit":true,"messageTitle":"Merge pull request #7 from lisizhuang-0121/master","messageBody":"Refactor code to align with QuizHub code structure.","fileTypesAndContributionMap":{}},{"hash":"5781673f896f0c94d455e6f90bd81064a2b60c5d","isMergeCommit":false,"messageTitle":"Change Task words to Question, Comment out old code","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":388,"deletions":382}}},{"hash":"6ae2d08763bc68f7ce450755d3341b498a8f2075","isMergeCommit":false,"messageTitle":"Add CommandShortAnswer, remove redundancies","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":31,"deletions":38},"other":{"insertions":6,"deletions":6}}}]}],"lisizhuang-0121":[{"date":"2023-10-04","commitResults":[{"hash":"db4924094e6d09cacbe80b263645d4f6e6778802","isMergeCommit":true,"messageTitle":"Merge pull request #1 from yeo-menghan/master","messageBody":"Add personal details(Meng Han) on AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"7398eac81f0be5e14293d06439587f84e7cea114","isMergeCommit":false,"messageTitle":"Update aboutus.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]},{"date":"2023-10-05","commitResults":[{"hash":"be1e01236a2a636b43c835c00d65832c606e7b06","isMergeCommit":false,"messageTitle":"Refactor code to align with QuizHub code structure.","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":65,"deletions":243},"other":{"insertions":99,"deletions":105}}},{"hash":"815456aa4e9a69f2359c634ce6d3183d0ca11172","isMergeCommit":false,"messageTitle":"Refactor and rename classes for better readability","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":274,"deletions":462},"other":{"insertions":9,"deletions":9}}}]}]},"authorFileTypeContributionMap":{"spinoandraptos":{"docs":1,"functional-code":546,"test-code":0},"StevenGX12":{"docs":1,"functional-code":33,"test-code":0},"yeo-menghan":{"docs":2,"functional-code":103,"test-code":0},"James-Hong-Jey":{"docs":1,"functional-code":362,"test-code":0},"lisizhuang-0121":{"docs":2,"functional-code":82,"test-code":0}},"authorContributionVariance":{"spinoandraptos":90546.4,"StevenGX12":95.927505,"yeo-menghan":918.7875,"James-Hong-Jey":34391.223,"lisizhuang-0121":76051.6},"authorDisplayNameMap":{"spinoandraptos":"CS2113-W12-1 MAN ..HENG","StevenGX12":"CS2113-W12-1 GUAN..XIAO","yeo-menghan":"CS2113-W12-1 YEO .. HAN","James-Hong-Jey":"CS2113-W12-1 JAME.. JEY","lisizhuang-0121":"CS2113-W12-1 LI S..UANG"}} diff --git a/AY2324S1-CS2113-W12-2_tp_master/authorship.json b/AY2324S1-CS2113-W12-2_tp_master/authorship.json index aa0bc93..9357618 100644 --- a/AY2324S1-CS2113-W12-2_tp_master/authorship.json +++ b/AY2324S1-CS2113-W12-2_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"mcmc101001"},"content":" mainClass.set(\"cashleh.CashLeh\")","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" archiveBaseName.set(\"cashleh\")","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"mcmc101001":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"WooKaiNing"},"content":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"BenedictChannn"},"content":"--------|:-----------------:|:--------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"mcmc101001"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ming Chun | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"Xuan127"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Shan YuXuan | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Daniel Pappalardo | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"BenedictChannn"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Benedict Chan | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"WooKaiNing"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Kai Ning | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"Xuan127":1,"danielpappa":1,"mcmc101001":1,"BenedictChannn":2,"-":3,"WooKaiNing":2}},{"path":"docs/DeveloperGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Developer Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Acknowledgements","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"## Design \u0026 implementation","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"## Product scope","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"### Target user profile","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":"{Describe the target user profile}","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"### Value proposition","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"-"},"content":"{Describe the value proposition: what problem does it solve?}","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"-"},"content":"## User Stories","lastModifiedDate":"2020-05-24"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"-"},"content":"|Version| As a ... | I want to ... | So that I can ... |","lastModifiedDate":"2020-05-24"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"|--------|----------|-------------------------------------------|--------------------------------------------------------------|","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"-"},"content":"|v1.0|new user| see usage instructions | refer to them when I forget how to use the application |","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to add my incomes and earnings | easily manage them and obtain access to an overview |","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to delete my incomes and earnings | correct any mistakes |","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to view the sum of my incomes | be fully aware of my financial situation and manage my money |","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"-"},"content":"|v2.0|user| find a to-do item by name | locate a to-do without having to go through the entire list |","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"## Non-Functional Requirements","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"{Give non-functional requirements}","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"## Glossary","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"* *glossary item* - Definition","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"## Instructions for manual testing","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"danielpappa":4,"-":37}},{"path":"docs/UserGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Introduction","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"CashLeh? is a CLI application mainly supporting working adults and students who struggle with managing finances","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"(ranging from one-time and recurring expenses, to rent, utilities, interest rates and more). It allows them to track","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"both their earnings and spending habits in a seamless way to have a neat overview of their financial ","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"situation.","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"## Quick Start","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"{Give steps to get started quickly}","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Ensure that you have Java 11 or above installed.","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":"1. Down the latest version of `Duke` from [here](http://link.to/duke).","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"-"},"content":"{Give detailed description of each feature}","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"### Adding an income: `addIncome`","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":"Adds an income with a description, amount and date.","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"Format: `addIncome DESCRIPTION /amtAMOUNT /dDATE`","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":"* The `DESCRIPTION` cannot contain punctuation or any special characters.","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":"* The `AMOUNT` must be a positive number.","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":"* The `DATE` must be of format \"yyyy-MM-dd\".","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"Example of usage: ","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":"`addIncome monthly salary /amt2500 /d2023-09-30`","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":"`addIncome amazon purchase refund /amt50 /d2023-10-10`","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":"### Deleting an income: `deleteIncome`","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":"Deletes an income with a specific index.","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"danielpappa"},"content":"Format: `deleteIncome INDEX`","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"danielpappa"},"content":"* The `INDEX` must be a positive integer and cannot be larger than the number of income entries.","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"danielpappa"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"danielpappa"},"content":"`deleteIncome 4`","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"danielpappa"},"content":"### Viewing previous incomes: `viewIncomes`","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"danielpappa"},"content":"Shows sum of incomes and lists each income record with its description and amount. ","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"danielpappa"},"content":"Format: `viewIncomes` ","lastModifiedDate":"2023-10-10"},{"lineNumber":50,"author":{"gitId":"danielpappa"},"content":"* Anything following the command will be ignored, i.e. `viewIncomes overview` will be interpreted just like `viewIncomes`.","lastModifiedDate":"2023-10-10"},{"lineNumber":51,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":52,"author":{"gitId":"danielpappa"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"danielpappa"},"content":"`viewIncomes`","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"## FAQ","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"**Q**: How do I transfer my data to another computer? ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":"**A**: {your answer here}","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"## Command Summary","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"{Give a \u0027cheat sheet\u0027 of commands here}","lastModifiedDate":"2020-05-24"},{"lineNumber":65,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":66,"author":{"gitId":"danielpappa"},"content":"* Add income `addIncome monthly salary /amt2500 /d2023-09-30`","lastModifiedDate":"2023-10-10"},{"lineNumber":67,"author":{"gitId":"danielpappa"},"content":"* Delete income `deleteIncome 4`","lastModifiedDate":"2023-10-10"},{"lineNumber":68,"author":{"gitId":"danielpappa"},"content":"* View incomes `viewIncomes`","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":35,"-":33}},{"path":"src/main/java/cashleh/CashLeh.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"mcmc101001"},"content":"public class CashLeh {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"mcmc101001"},"content":" private final Ui ui \u003d new Ui();","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"Xuan127"},"content":" private final Input input \u003d new Input();","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"mcmc101001"},"content":" * Main entry-point for the application.","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"mcmc101001"},"content":" public void run() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"mcmc101001"},"content":" ","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"Xuan127"},"content":" String logo \u003d \" ______ __ __ __ ___ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"Xuan127"},"content":" + \" / ____/___ ______/ /_ / / ___ / /_/__ \\\\ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"Xuan127"},"content":" + \" / / / __ `/ ___/ __ \\\\/ / / _ \\\\/ __ \\\\/ _/ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"Xuan127"},"content":" + \" / /___/ /_/ (__ ) / / / /___/ __/ / / /_/ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"Xuan127"},"content":" + \" \\\\____/\\\\__,_/____/_/ /_/_____/\\\\___/_/ /_(_) \\n\";","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"Xuan127"},"content":" System.out.println(\"Here is the link to the user guide:\"","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"Xuan127"},"content":" + \"https://docs.google.com/document/d/\"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"Xuan127"},"content":" + \"15h45BB5kMkTZ6bkwUHujpYwxVVl80tNEyNUsEVyk5AQ/edit?usp\u003ddrive_link\");","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"Xuan127"},"content":" System.out.println(logo);","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"Xuan127"},"content":" System.out.println(\"Welcome to \u0027CashLeh?\u0027! Your one-stop app for managing your finances!\");","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"Xuan127"},"content":" String[] greetingLines \u003d {\"What is your name?\"};","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"Xuan127"},"content":" ui.printMultipleText(greetingLines);","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"Xuan127"},"content":" String inputString \u003d input.getInputString();","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Hello \" + inputString);","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"Xuan127"},"content":" do {","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"Xuan127"},"content":" inputString \u003d input.getInputString();","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"Xuan127"},"content":" if (inputString.equals(\"bye\")) {","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"Xuan127"},"content":" } else {","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Sorry, I don\u0027t understand what you mean.\");","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"Xuan127"},"content":" } ","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"Xuan127"},"content":" } while (!inputString.equals(\"bye\"));","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"mcmc101001"},"content":" new CashLeh().run();","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":39,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"Xuan127":24,"mcmc101001":9,"-":6}},{"path":"src/main/java/cashleh/Income.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"public class Income {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" protected int amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" protected int totalIncome \u003d 0; // sum of all incomes","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" protected String description;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" protected String currency; // SGD by default","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" protected LocalDate date;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" protected boolean isOneTimeIncome; // true by default","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" public Income(int amount, String description, LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" this.amount \u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" this.date \u003d date;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" this.currency \u003d \"S$\";","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" this.isOneTimeIncome \u003d true;","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" this.totalIncome +\u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" public int getAmount() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" return this.amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" public void setAmount(int amount) {","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" this.amount \u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" public int getTotalIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" return this.totalIncome;","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" public String getDescription() {","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" return this.description;","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":" public void setDescription(String description) {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"danielpappa"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":" return this.date;","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":" public void setDate(LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"danielpappa"},"content":" this.date \u003d date;","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"danielpappa"},"content":" public String isOneTimeIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"danielpappa"},"content":" return (isOneTimeIncome ? \"One time\" : \"Recurring\");","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"danielpappa"},"content":" public void setOneTimeIncome(boolean isOneTimeIncome) {","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"danielpappa"},"content":" this.isOneTimeIncome \u003d isOneTimeIncome;","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"danielpappa"},"content":" public String getCurrency() {","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"danielpappa"},"content":" return this.currency;","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"danielpappa"},"content":" public void setCurrency(String currency) {","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"danielpappa"},"content":" this.currency \u003d currency;","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"danielpappa"},"content":" public String toString() {","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"danielpappa"},"content":" return String.format(\"\\t+ %s %d: %s (date: %s, %s)\", currency, amount, description, date, isOneTimeIncome());","lastModifiedDate":"2023-10-10"},{"lineNumber":56,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":57}},{"path":"src/main/java/cashleh/IncomeStatement.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.util.stream.Collectors;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"public class IncomeStatement {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" private ArrayList\u003cIncome\u003e incomeStatement \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement() {}","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement(Income... incomes) {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" incomeStatement.addAll(List.of(incomes));","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" public void add(Income incomeToAdd) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" incomeStatement.add(incomeToAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" public void delete(int incomeIndexToDelete) {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" incomeStatement.remove(incomeIndexToDelete);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" public Income get(int incomeIndex) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.get(incomeIndex);","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" public int getNumberOfEntries() {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.size();","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" public double getSumOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.stream().mapToDouble(Income::getAmount).sum();","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" public String toString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.stream().map(Income::toString).collect(Collectors.joining(\"\\n\"));","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":32}},{"path":"src/main/java/cashleh/Input.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"Xuan127"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"Xuan127"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"Xuan127"},"content":"/**","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"Xuan127"},"content":" * Represents the input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"Xuan127"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"Xuan127"},"content":"public class Input {","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"Xuan127"},"content":" private String inputString;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"Xuan127"},"content":" private Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"Xuan127"},"content":" public Input() {","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"Xuan127"},"content":" inputString \u003d \"\";","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"Xuan127"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"Xuan127"},"content":" * Returns the next line of input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"Xuan127"},"content":" * @return Next line of input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"Xuan127"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"Xuan127"},"content":" public String getInputString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"Xuan127"},"content":" if (in.hasNextLine()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"Xuan127"},"content":" inputString \u003d in.nextLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"Xuan127"},"content":" return inputString;","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"Xuan127"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"Xuan127":26}},{"path":"src/main/java/cashleh/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"mcmc101001"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"mcmc101001"},"content":"public class Ui {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"mcmc101001"},"content":" private void printHorizontalLine() {","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t____________________________________________________________\");","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"mcmc101001"},"content":" * Prints the given text sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"mcmc101001"},"content":" * @param text Text to be printed","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"mcmc101001"},"content":" public void printText(String text) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"mcmc101001"},"content":" * Prints the given texts sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"mcmc101001"},"content":" * @param texts Texts to be printed in a list","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"mcmc101001"},"content":" public void printMultipleText(String[] texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"mcmc101001"},"content":" for (String text : texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"mcmc101001"},"content":" * Prints the given texts sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"mcmc101001"},"content":" * @param texts Texts to be printed in a list","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" public void printMultipleText(ArrayList\u003cString\u003e texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"mcmc101001"},"content":" for (String text : texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"mcmc101001"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"mcmc101001":43}},{"path":"src/main/java/cashleh/commands/AddIncome.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import cashleh.Income;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"public class AddIncome extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"addIncome\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" private final Income incomeToAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" public AddIncome(int amount, String description, LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" this.incomeToAdd \u003d new Income(amount, description, date);","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" public AddIncome(Income incomeToAdd) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" this.incomeToAdd \u003d incomeToAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" incomeStatement.add(incomeToAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The following income was added:\\n\" + getIncome());","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":21}},{"path":"src/main/java/cashleh/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import cashleh.Income;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"import cashleh.IncomeStatement;","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"public class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" protected IncomeStatement incomeStatement;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" private int index;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public Command(int index) {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" this.index \u003d index;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" public Command() {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" public int getIndex() {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" return this.index;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" public Income getIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.get(getIndex());","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement getIncomeStatement() {","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" return incomeStatement;","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" public double getIncomeSum() {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.getSumOfEntries();","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" public void execute() {}","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" public void setIncomeStatement(IncomeStatement incomeStatement) {","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" this.incomeStatement \u003d incomeStatement;","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":30}},{"path":"src/main/java/cashleh/commands/DeleteIncome.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"public class DeleteIncome extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"deleteIncome\";","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":" public DeleteIncome(int incomeIndexToDelete) {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" super(incomeIndexToDelete);","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" String incomeBeingDeleted \u003d getIncome().toString();","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" incomeStatement.delete(getIndex());","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The following income was deleted:\\n\" + incomeBeingDeleted);","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":14}},{"path":"src/main/java/cashleh/commands/ViewIncomes.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"public class ViewIncomes extends Command {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"viewIncomes\";","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":" public ViewIncomes(int incomeIndexToView) {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" super(incomeIndexToView);","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The current sum of all your incomes amounts to: \"","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" + getIncomeSum() + System.lineSeparator() + getIncomeStatement());","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":13}},{"path":"src/test/java/cashleh/CashLehTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"class CashLehTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":1,"mcmc101001":1,"-":10}},{"path":"src/test/java/cashleh/IncomeStatementTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":"class IncomeStatementTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" IncomeStatement testStatement \u003d new IncomeStatement();","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" Income testIncome \u003d new Income(200, \"pocket money\",","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" LocalDate.of(2023, 10, 10));","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" void getNumberOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 0);","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 1);","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 2);","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" void getSumOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getSumOfEntries(), 200);","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getSumOfEntries(), 400);","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" void testToString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":" System.out.println(testStatement);","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.toString(), \"\\t+ S$ 200: pocket money (date: 2023-10-10, One time)\\n\\t\"","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":" + \"+ S$ 200: pocket money (date: 2023-10-10, One time)\");","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":38}},{"path":"src/test/java/cashleh/IncomeTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":"class IncomeTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" Income testIncome \u003d new Income(200, \"pocket money\",","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" LocalDate.of(2023, 10, 10));","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" void isOneTimeIncome() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.isOneTimeIncome(), \"One time\");","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" testIncome.setOneTimeIncome(false);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.isOneTimeIncome(), \"Recurring\");","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" void testToString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.toString(), \"\\t+ S$ 200: pocket money (date: 2023-10-10, One time)\");","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":24}}] +[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"mcmc101001"},"content":" mainClass.set(\"cashleh.CashLeh\")","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" archiveBaseName.set(\"cashleh\")","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"mcmc101001":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"WooKaiNing"},"content":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d","lastModifiedDate":"2023-10-04"},{"lineNumber":4,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"BenedictChannn"},"content":"--------|:-----------------:|:--------------:|:---------:","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"mcmc101001"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ming Chun | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"Xuan127"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Shan YuXuan | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Daniel Pappalardo | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"BenedictChannn"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Benedict Chan | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"WooKaiNing"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Kai Ning | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"Xuan127":1,"danielpappa":1,"mcmc101001":1,"BenedictChannn":2,"-":3,"WooKaiNing":2}},{"path":"docs/DeveloperGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Developer Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Acknowledgements","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"## Design \u0026 implementation","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"## Product scope","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"### Target user profile","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":"{Describe the target user profile}","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"### Value proposition","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"-"},"content":"{Describe the value proposition: what problem does it solve?}","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"-"},"content":"## User Stories","lastModifiedDate":"2020-05-24"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"-"},"content":"|Version| As a ... | I want to ... | So that I can ... |","lastModifiedDate":"2020-05-24"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"|--------|----------|-------------------------------------------|--------------------------------------------------------------|","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"-"},"content":"|v1.0|new user| see usage instructions | refer to them when I forget how to use the application |","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to add my incomes and earnings | easily manage them and obtain access to an overview |","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to delete my incomes and earnings | correct any mistakes |","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":"|v1.0|new user| be able to view the sum of my incomes | be fully aware of my financial situation and manage my money |","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"-"},"content":"|v2.0|user| find a to-do item by name | locate a to-do without having to go through the entire list |","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"## Non-Functional Requirements","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"{Give non-functional requirements}","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"## Glossary","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"* *glossary item* - Definition","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"## Instructions for manual testing","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"danielpappa":4,"-":37}},{"path":"docs/UserGuide.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# User Guide","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"## Introduction","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"CashLeh? is a CLI application mainly supporting working adults and students who struggle with managing finances","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"(ranging from one-time and recurring expenses, to rent, utilities, interest rates and more). It allows them to track","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"both their earnings and spending habits in a seamless way to have a neat overview of their financial ","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"situation.","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"## Quick Start","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"{Give steps to get started quickly}","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":"1. Ensure that you have Java 11 or above installed.","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":"1. Down the latest version of `Duke` from [here](http://link.to/duke).","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"## Features ","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":19,"author":{"gitId":"-"},"content":"{Give detailed description of each feature}","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"### Adding an income: `addIncome`","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":"Adds an income with a description, amount and date.","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"Format: `addIncome DESCRIPTION /amtAMOUNT /dDATE`","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":"* The `DESCRIPTION` cannot contain punctuation or any special characters.","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":"* The `AMOUNT` must be a positive number.","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":"* The `DATE` must be of format \"yyyy-MM-dd\".","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"Example of usage: ","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":"`addIncome monthly salary /amt2500 /d2023-09-30`","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":"`addIncome amazon purchase refund /amt50 /d2023-10-10`","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":"### Deleting an income: `deleteIncome`","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":"Deletes an income with a specific index.","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"danielpappa"},"content":"Format: `deleteIncome INDEX`","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"danielpappa"},"content":"* The `INDEX` must be a positive integer and cannot be larger than the number of income entries.","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"danielpappa"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"danielpappa"},"content":"`deleteIncome 4`","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"danielpappa"},"content":"### Viewing previous incomes: `viewIncomes`","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"danielpappa"},"content":"Shows sum of incomes and lists each income record with its description and amount. ","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"danielpappa"},"content":"Format: `viewIncomes` ","lastModifiedDate":"2023-10-10"},{"lineNumber":50,"author":{"gitId":"danielpappa"},"content":"* Anything following the command will be ignored, i.e. `viewIncomes overview` will be interpreted just like `viewIncomes`.","lastModifiedDate":"2023-10-10"},{"lineNumber":51,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":52,"author":{"gitId":"danielpappa"},"content":"Example of usage:","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"danielpappa"},"content":"`viewIncomes`","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"## FAQ","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"**Q**: How do I transfer my data to another computer? ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":"**A**: {your answer here}","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"## Command Summary","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"{Give a \u0027cheat sheet\u0027 of commands here}","lastModifiedDate":"2020-05-24"},{"lineNumber":65,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":66,"author":{"gitId":"danielpappa"},"content":"* Add income `addIncome monthly salary /amt2500 /d2023-09-30`","lastModifiedDate":"2023-10-10"},{"lineNumber":67,"author":{"gitId":"danielpappa"},"content":"* Delete income `deleteIncome 4`","lastModifiedDate":"2023-10-10"},{"lineNumber":68,"author":{"gitId":"danielpappa"},"content":"* View incomes `viewIncomes`","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":35,"-":33}},{"path":"src/main/java/cashleh/CashLeh.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"mcmc101001"},"content":"public class CashLeh {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"mcmc101001"},"content":" private final Ui ui \u003d new Ui();","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"Xuan127"},"content":" private final Input input \u003d new Input();","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"mcmc101001"},"content":" * Main entry-point for the application.","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"mcmc101001"},"content":" public void run() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"mcmc101001"},"content":" ","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"Xuan127"},"content":" String logo \u003d \" ______ __ __ __ ___ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"Xuan127"},"content":" + \" / ____/___ ______/ /_ / / ___ / /_/__ \\\\ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"Xuan127"},"content":" + \" / / / __ `/ ___/ __ \\\\/ / / _ \\\\/ __ \\\\/ _/ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"Xuan127"},"content":" + \" / /___/ /_/ (__ ) / / / /___/ __/ / / /_/ \\n\"","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"Xuan127"},"content":" + \" \\\\____/\\\\__,_/____/_/ /_/_____/\\\\___/_/ /_(_) \\n\";","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"mcmc101001"},"content":" String userGuideLink \u003d (\"Here is the link to the user guide:\"","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"Xuan127"},"content":" + \"https://docs.google.com/document/d/\"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"Xuan127"},"content":" + \"15h45BB5kMkTZ6bkwUHujpYwxVVl80tNEyNUsEVyk5AQ/edit?usp\u003ddrive_link\");","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"mcmc101001"},"content":" String[] greetingLines \u003d {userGuideLink, logo, \"Welcome to \u0027CashLeh?\u0027! \" +","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"mcmc101001"},"content":" \"Your one-stop app for managing your finances!\", \"What is your name?\"};","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":22,"author":{"gitId":"Xuan127"},"content":" ui.printMultipleText(greetingLines);","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"Xuan127"},"content":" String inputString \u003d input.getInputString();","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Hello \" + inputString);","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":27,"author":{"gitId":"Xuan127"},"content":" do {","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"Xuan127"},"content":" inputString \u003d input.getInputString();","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"Xuan127"},"content":" if (inputString.equals(\"bye\")) {","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Bye. Hope to see you again soon!\");","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"Xuan127"},"content":" } else {","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"Xuan127"},"content":" ui.printText(\"Sorry, I don\u0027t understand what you mean.\");","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"Xuan127"},"content":" } ","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"Xuan127"},"content":" } while (!inputString.equals(\"bye\"));","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"mcmc101001"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"mcmc101001"},"content":" new CashLeh().run();","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":40,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"Xuan127":20,"mcmc101001":14,"-":6}},{"path":"src/main/java/cashleh/Income.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"public class Income {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" protected int amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" protected int totalIncome \u003d 0; // sum of all incomes","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" protected String description;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" protected String currency; // SGD by default","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" protected LocalDate date;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" protected boolean isOneTimeIncome; // true by default","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" public Income(int amount, String description, LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" this.amount \u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" this.date \u003d date;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" this.currency \u003d \"S$\";","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" this.isOneTimeIncome \u003d true;","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" this.totalIncome +\u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" public int getAmount() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" return this.amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" public void setAmount(int amount) {","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" this.amount \u003d amount;","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" public int getTotalIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" return this.totalIncome;","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" public String getDescription() {","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" return this.description;","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":" public void setDescription(String description) {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"danielpappa"},"content":" this.description \u003d description;","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":" public LocalDate getDate() {","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":" return this.date;","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":" public void setDate(LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"danielpappa"},"content":" this.date \u003d date;","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"danielpappa"},"content":" public String isOneTimeIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"danielpappa"},"content":" return (isOneTimeIncome ? \"One time\" : \"Recurring\");","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"danielpappa"},"content":" public void setOneTimeIncome(boolean isOneTimeIncome) {","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"danielpappa"},"content":" this.isOneTimeIncome \u003d isOneTimeIncome;","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"danielpappa"},"content":" public String getCurrency() {","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"danielpappa"},"content":" return this.currency;","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"danielpappa"},"content":" public void setCurrency(String currency) {","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"danielpappa"},"content":" this.currency \u003d currency;","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"danielpappa"},"content":" public String toString() {","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"danielpappa"},"content":" return String.format(\"\\t+ %s %d: %s (date: %s, %s)\", currency, amount, description, date, isOneTimeIncome());","lastModifiedDate":"2023-10-10"},{"lineNumber":56,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":57}},{"path":"src/main/java/cashleh/IncomeStatement.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"import java.util.List;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.util.stream.Collectors;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"public class IncomeStatement {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" private ArrayList\u003cIncome\u003e incomeStatement \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement() {}","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement(Income... incomes) {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" incomeStatement.addAll(List.of(incomes));","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" public void add(Income incomeToAdd) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" incomeStatement.add(incomeToAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" public void delete(int incomeIndexToDelete) {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" incomeStatement.remove(incomeIndexToDelete);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" public Income get(int incomeIndex) {","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.get(incomeIndex);","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" public int getNumberOfEntries() {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.size();","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" public double getSumOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.stream().mapToDouble(Income::getAmount).sum();","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" public String toString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.stream().map(Income::toString).collect(Collectors.joining(\"\\n\"));","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":32}},{"path":"src/main/java/cashleh/Input.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"Xuan127"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"Xuan127"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"Xuan127"},"content":"/**","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"Xuan127"},"content":" * Represents the input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"Xuan127"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"Xuan127"},"content":"public class Input {","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"Xuan127"},"content":" private String inputString;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"Xuan127"},"content":" private Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"Xuan127"},"content":" public Input() {","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"Xuan127"},"content":" inputString \u003d \"\";","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"Xuan127"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"Xuan127"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"Xuan127"},"content":" * Returns the next line of input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"Xuan127"},"content":" * @return Next line of input from the user","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"Xuan127"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"Xuan127"},"content":" public String getInputString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"Xuan127"},"content":" if (in.hasNextLine()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"Xuan127"},"content":" inputString \u003d in.nextLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"Xuan127"},"content":" return inputString;","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"Xuan127"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"Xuan127"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"Xuan127":26}},{"path":"src/main/java/cashleh/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"mcmc101001"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"mcmc101001"},"content":"public class Ui {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"mcmc101001"},"content":" private void printHorizontalLine() {","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t____________________________________________________________\");","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"mcmc101001"},"content":" * Prints the given text sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"mcmc101001"},"content":" * @param text Text to be printed","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"mcmc101001"},"content":" public void printText(String text) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"mcmc101001"},"content":" * Prints the given texts sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"mcmc101001"},"content":" * @param texts Texts to be printed in a list","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"mcmc101001"},"content":" public void printMultipleText(String[] texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"mcmc101001"},"content":" for (String text : texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"mcmc101001"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"mcmc101001"},"content":" * Prints the given texts sandwiched by two horizontal lines","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"mcmc101001"},"content":" * @param texts Texts to be printed in a list","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"mcmc101001"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" public void printMultipleText(ArrayList\u003cString\u003e texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"mcmc101001"},"content":" for (String text : texts) {","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"mcmc101001"},"content":" System.out.println(\"\\t\" + text);","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"mcmc101001"},"content":" printHorizontalLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"mcmc101001"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"mcmc101001":43}},{"path":"src/main/java/cashleh/commands/AddIncome.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import cashleh.Income;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"public class AddIncome extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"addIncome\";","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" private final Income incomeToAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" public AddIncome(int amount, String description, LocalDate date) {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" this.incomeToAdd \u003d new Income(amount, description, date);","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" public AddIncome(Income incomeToAdd) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" this.incomeToAdd \u003d incomeToAdd;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" incomeStatement.add(incomeToAdd);","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The following income was added:\\n\" + getIncome());","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":21}},{"path":"src/main/java/cashleh/commands/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import cashleh.Income;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"import cashleh.IncomeStatement;","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"public class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" protected IncomeStatement incomeStatement;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" private int index;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public Command(int index) {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" this.index \u003d index;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" public Command() {","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" public int getIndex() {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" return this.index;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" public Income getIncome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.get(getIndex());","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" public IncomeStatement getIncomeStatement() {","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" return incomeStatement;","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" public double getIncomeSum() {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" return incomeStatement.getSumOfEntries();","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" public void execute() {}","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" public void setIncomeStatement(IncomeStatement incomeStatement) {","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" this.incomeStatement \u003d incomeStatement;","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":30}},{"path":"src/main/java/cashleh/commands/DeleteIncome.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"public class DeleteIncome extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"deleteIncome\";","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":" public DeleteIncome(int incomeIndexToDelete) {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" super(incomeIndexToDelete);","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" String incomeBeingDeleted \u003d getIncome().toString();","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" incomeStatement.delete(getIndex());","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The following income was deleted:\\n\" + incomeBeingDeleted);","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":14}},{"path":"src/main/java/cashleh/commands/ViewIncomes.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh.commands;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"public class ViewIncomes extends Command {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":" public static final String COMMAND \u003d \"viewIncomes\";","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":" public ViewIncomes(int incomeIndexToView) {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":" super(incomeIndexToView);","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":" public void execute() {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" System.out.println(\"The current sum of all your incomes amounts to: \"","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" + getIncomeSum() + System.lineSeparator() + getIncomeStatement());","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":13}},{"path":"src/test/java/cashleh/CashLehTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"class CashLehTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"danielpappa":1,"mcmc101001":1,"-":10}},{"path":"src/test/java/cashleh/IncomeStatementTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":"class IncomeStatementTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" IncomeStatement testStatement \u003d new IncomeStatement();","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" Income testIncome \u003d new Income(200, \"pocket money\",","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":" LocalDate.of(2023, 10, 10));","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" void getNumberOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 0);","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 1);","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getNumberOfEntries(), 2);","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" void getSumOfEntries() {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getSumOfEntries(), 200);","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.getSumOfEntries(), 400);","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"danielpappa"},"content":" void testToString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"danielpappa"},"content":" testStatement.add(testIncome);","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"danielpappa"},"content":" System.out.println(testStatement);","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"danielpappa"},"content":" assertEquals(testStatement.toString(), \"\\t+ S$ 200: pocket money (date: 2023-10-10, One time)\\n\\t\"","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"danielpappa"},"content":" + \"+ S$ 200: pocket money (date: 2023-10-10, One time)\");","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":38}},{"path":"src/test/java/cashleh/IncomeTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"danielpappa"},"content":"package cashleh;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"danielpappa"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"danielpappa"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"danielpappa"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"danielpappa"},"content":"class IncomeTest {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"danielpappa"},"content":" Income testIncome \u003d new Income(200, \"pocket money\",","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"danielpappa"},"content":" LocalDate.of(2023, 10, 10));","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"danielpappa"},"content":" void isOneTimeIncome() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.isOneTimeIncome(), \"One time\");","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"danielpappa"},"content":" testIncome.setOneTimeIncome(false);","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.isOneTimeIncome(), \"Recurring\");","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"danielpappa"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"danielpappa"},"content":" @Test","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"danielpappa"},"content":" void testToString() {","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"danielpappa"},"content":" assertEquals(testIncome.toString(), \"\\t+ S$ 200: pocket money (date: 2023-10-10, One time)\");","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"danielpappa"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"danielpappa"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"danielpappa":24}},{"path":"src/test/java/cashleh/UiTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"mcmc101001"},"content":"package cashleh;","lastModifiedDate":"2023-10-11"},{"lineNumber":2,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"mcmc101001"},"content":"import org.junit.jupiter.api.AfterEach;","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"mcmc101001"},"content":"import org.junit.jupiter.api.BeforeEach;","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"mcmc101001"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"mcmc101001"},"content":"import java.io.ByteArrayOutputStream;","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"mcmc101001"},"content":"import java.io.PrintStream;","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"mcmc101001"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"mcmc101001"},"content":"import static org.junit.jupiter.api.Assertions.assertEquals;","lastModifiedDate":"2023-10-11"},{"lineNumber":12,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"mcmc101001"},"content":"public class UiTest {","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"mcmc101001"},"content":" Ui testUi \u003d new Ui();","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"mcmc101001"},"content":" private final PrintStream standardOut \u003d System.out;","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"mcmc101001"},"content":" private final ByteArrayOutputStream outputStreamCaptor \u003d new ByteArrayOutputStream();","lastModifiedDate":"2023-10-11"},{"lineNumber":18,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":19,"author":{"gitId":"mcmc101001"},"content":" private final String HORIZONTAL_LINE \u003d \"\\t____________________________________________________________\";","lastModifiedDate":"2023-10-11"},{"lineNumber":20,"author":{"gitId":"mcmc101001"},"content":" private final String SEPARATOR \u003d System.lineSeparator();","lastModifiedDate":"2023-10-11"},{"lineNumber":21,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":22,"author":{"gitId":"mcmc101001"},"content":" @BeforeEach","lastModifiedDate":"2023-10-11"},{"lineNumber":23,"author":{"gitId":"mcmc101001"},"content":" public void setUp() {","lastModifiedDate":"2023-10-11"},{"lineNumber":24,"author":{"gitId":"mcmc101001"},"content":" System.setOut(new PrintStream(outputStreamCaptor));","lastModifiedDate":"2023-10-11"},{"lineNumber":25,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":26,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":27,"author":{"gitId":"mcmc101001"},"content":" @Test","lastModifiedDate":"2023-10-11"},{"lineNumber":28,"author":{"gitId":"mcmc101001"},"content":" void testPrintSingle() {","lastModifiedDate":"2023-10-11"},{"lineNumber":29,"author":{"gitId":"mcmc101001"},"content":" testUi.printText(\"Welcome to CashLeh!\");","lastModifiedDate":"2023-10-11"},{"lineNumber":30,"author":{"gitId":"mcmc101001"},"content":" assertEquals(HORIZONTAL_LINE + SEPARATOR + \"\\tWelcome to CashLeh!\" + SEPARATOR","lastModifiedDate":"2023-10-11"},{"lineNumber":31,"author":{"gitId":"mcmc101001"},"content":" + HORIZONTAL_LINE + SEPARATOR, outputStreamCaptor.toString());","lastModifiedDate":"2023-10-11"},{"lineNumber":32,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":33,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":34,"author":{"gitId":"mcmc101001"},"content":" @Test","lastModifiedDate":"2023-10-11"},{"lineNumber":35,"author":{"gitId":"mcmc101001"},"content":" void testPrintArray() {","lastModifiedDate":"2023-10-11"},{"lineNumber":36,"author":{"gitId":"mcmc101001"},"content":" testUi.printMultipleText(new String[]{\"Welcome to CashLeh!\", \"What can I do for you?\"});","lastModifiedDate":"2023-10-11"},{"lineNumber":37,"author":{"gitId":"mcmc101001"},"content":" assertEquals(HORIZONTAL_LINE + SEPARATOR + \"\\tWelcome to CashLeh!\" + SEPARATOR","lastModifiedDate":"2023-10-11"},{"lineNumber":38,"author":{"gitId":"mcmc101001"},"content":" + \"\\tWhat can I do for you?\" + SEPARATOR + HORIZONTAL_LINE + SEPARATOR, outputStreamCaptor.toString());","lastModifiedDate":"2023-10-11"},{"lineNumber":39,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":40,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":41,"author":{"gitId":"mcmc101001"},"content":" @Test","lastModifiedDate":"2023-10-11"},{"lineNumber":42,"author":{"gitId":"mcmc101001"},"content":" void testPrintArrayList() {","lastModifiedDate":"2023-10-11"},{"lineNumber":43,"author":{"gitId":"mcmc101001"},"content":" ArrayList\u003cString\u003e testArrayList \u003d new ArrayList\u003c\u003e();","lastModifiedDate":"2023-10-11"},{"lineNumber":44,"author":{"gitId":"mcmc101001"},"content":" testArrayList.add(\"Welcome to CashLeh!\");","lastModifiedDate":"2023-10-11"},{"lineNumber":45,"author":{"gitId":"mcmc101001"},"content":" testArrayList.add(\"What can I do for you?\");","lastModifiedDate":"2023-10-11"},{"lineNumber":46,"author":{"gitId":"mcmc101001"},"content":" testUi.printMultipleText(testArrayList);","lastModifiedDate":"2023-10-11"},{"lineNumber":47,"author":{"gitId":"mcmc101001"},"content":" assertEquals(HORIZONTAL_LINE + SEPARATOR + \"\\tWelcome to CashLeh!\" + SEPARATOR","lastModifiedDate":"2023-10-11"},{"lineNumber":48,"author":{"gitId":"mcmc101001"},"content":" + \"\\tWhat can I do for you?\" + SEPARATOR + HORIZONTAL_LINE + SEPARATOR, outputStreamCaptor.toString());","lastModifiedDate":"2023-10-11"},{"lineNumber":49,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":50,"author":{"gitId":"mcmc101001"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":51,"author":{"gitId":"mcmc101001"},"content":" @AfterEach","lastModifiedDate":"2023-10-11"},{"lineNumber":52,"author":{"gitId":"mcmc101001"},"content":" public void tearDown() {","lastModifiedDate":"2023-10-11"},{"lineNumber":53,"author":{"gitId":"mcmc101001"},"content":" System.setOut(standardOut);","lastModifiedDate":"2023-10-11"},{"lineNumber":54,"author":{"gitId":"mcmc101001"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":55,"author":{"gitId":"mcmc101001"},"content":"}","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"mcmc101001":55}}] diff --git a/AY2324S1-CS2113-W12-2_tp_master/commits.json b/AY2324S1-CS2113-W12-2_tp_master/commits.json index cde14b9..f4c0d4b 100644 --- a/AY2324S1-CS2113-W12-2_tp_master/commits.json +++ b/AY2324S1-CS2113-W12-2_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"Xuan127":[{"date":"2023-10-04","commitResults":[{"hash":"92527fd32c5b5fa00119b754e79e8f90a7aec990","isMergeCommit":false,"messageTitle":"Edit about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"202d4740acca25f35994264b9b82e37fafee606b","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027upstream/master\u0027","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"1969944e3707bc31b0f1f34b8840b88c6dfb9c11","isMergeCommit":true,"messageTitle":"Merge pull request #21 from danielpappa/master","messageBody":"Update name in first line","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"f7da23047dea85e15ea67b57be6a9919992ff63f","isMergeCommit":false,"messageTitle":"Initialize and implement quit","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":1}}},{"hash":"6d87e67f7da1087ac4e36b352008de1803e15a40","isMergeCommit":false,"messageTitle":"Change the starting prints","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":9,"deletions":7}}},{"hash":"04d0249fce8ab50119cf0cb1190da0a330d7c9dc","isMergeCommit":false,"messageTitle":"Create Input class","messageBody":"Fixes #22\n","fileTypesAndContributionMap":{"functional-code":{"insertions":22,"deletions":7}}},{"hash":"4fffba3cf6fd42d3c60b399bd50f985068477911","isMergeCommit":false,"messageTitle":"Shorten line 17 in main","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1}}},{"hash":"638c97db74be058316ed191d5a389a91503089e2","isMergeCommit":false,"messageTitle":"Add check for if there is next line of input","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1}}},{"hash":"0e5d466cb2687bd3d2521aceabf8d1729c94bad0","isMergeCommit":true,"messageTitle":"Merge pull request #24 from mcmc101001/branch-Ui-Class","messageBody":"Add UI class with simple methods to handle UI functionalities","fileTypesAndContributionMap":{}},{"hash":"503fdcda1131acf16720adc8697374ece53edaed","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027upstream/master\u0027 into initialisation_and_exit","messageBody":"# Conflicts:\n#\tsrc/main/java/cashleh/CashLeh.java\n#\tsrc/main/java/cashleh/Input.java\n","fileTypesAndContributionMap":{}},{"hash":"fd51ee65ba035a1ffd51a50bcc20dce14737fe80","isMergeCommit":false,"messageTitle":"Add some javadoc for Input class and use ui class to print everything","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":9,"deletions":2}}},{"hash":"75a0f86038ee8bc5f38140bff6b2f96e4d2495ce","isMergeCommit":false,"messageTitle":"Edit test files","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}}]}],"danielpappa":[{"date":"2023-10-04","commitResults":[{"hash":"6a88a35d1e499a86502311ce617b3d273dcc48f0","isMergeCommit":false,"messageTitle":"Update name in first line","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"f7b2b1acc55cdbeeb912672b5302a2cf4cee27b5","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"c4a9e0a615eb0fb6cc4694b04fb50e7f95f42ca8","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"f6577bec4bf20fbbb68bca3b6a6f499b46ad59ab","isMergeCommit":true,"messageTitle":"Merge pull request #20 from BenedictChannn/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"fc7b489e76f9b9d817a5d16c99642e4636727f93","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"4fd7937372050ab7ff3596f79b26cad7b7d53544","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"223df0aaf53c99b427d96f0976496c4cb88987e3","isMergeCommit":false,"messageTitle":"Rename main class into CashLeh and remove previous content","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":12,"deletions":21},"test-code":{"insertions":0,"deletions":12}}},{"hash":"93072c4de558ecd02adb511e630e57cf1bc1723f","isMergeCommit":false,"messageTitle":"Create class Income and IncomeStatement","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":81,"deletions":0},"test-code":{"insertions":12,"deletions":0}}},{"hash":"644bb97ee4809fec84ba24c2e6073e0988eb5a6a","isMergeCommit":false,"messageTitle":"Create class Command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":25,"deletions":0}}},{"hash":"d5070be237065862b655a113d2baf790e7c090d4","isMergeCommit":false,"messageTitle":"Create classes AddIncome, DeleteIncome and ViewIncome","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":47,"deletions":0}}}]},{"date":"2023-10-10","commitResults":[{"hash":"81ac2823b911e1d6829a287d6a2b0251ef5edcec","isMergeCommit":false,"messageTitle":"Update developer guide to contain info related to income","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":42,"deletions":13}}},{"hash":"f11e9c051add403df3307911977c89a969b2969d","isMergeCommit":false,"messageTitle":"Update viewIncomes to follow user guide","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":28,"deletions":13}}},{"hash":"5402f7f13ea448115f2a595844905666b555e5e2","isMergeCommit":false,"messageTitle":"Add tab before toString() method","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":3}}},{"hash":"30ba3c34fb93c9b2b374634423f88e497812bde2","isMergeCommit":false,"messageTitle":"Create basic JUnit tests for Income and IncomeStatement","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":62,"deletions":0}}},{"hash":"c6b31773a8dc3d5ab25e6314353e999d144daacd","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp into level-1-income","messageBody":"# Conflicts:\n#\tsrc/main/java/cashleh/CashLeh.java\n#\tsrc/test/java/cashleh/CashLehTest.java\n#\tsrc/test/java/seedu/cashleh/CashLehTest.java\n#\tsrc/test/java/seedu/duke/DukeTest.java\n","fileTypesAndContributionMap":{}},{"hash":"3c17c38bb27dacdf333984d875b7bb4234f44bfc","isMergeCommit":true,"messageTitle":"Merge pull request #23 from Xuan127/initialisation_and_exit","messageBody":"Initialisation and exit","fileTypesAndContributionMap":{}},{"hash":"cb2f447d0cacfbaac75c7e5e15ef24a761c5e002","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp into level-1-income","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"00b0a13593f0ba617f1a5a647a6941bd8f0c13e2","isMergeCommit":false,"messageTitle":"Improve coding standard to pass tests to merge on Github","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":0,"deletions":2},"test-code":{"insertions":5,"deletions":8}}},{"hash":"355347d9e4c6e1235ee19d774f35331c88befb4b","isMergeCommit":false,"messageTitle":"Fix coding standard violation","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":2,"deletions":2}}}]}],"mcmc101001":[{"date":"2023-10-04","commitResults":[{"hash":"61869c053985866bf98597995197cda3794dc725","isMergeCommit":false,"messageTitle":"Add name to AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1},"docs":{"insertions":7,"deletions":7}}},{"hash":"d8d872f9c15f68fceacb5c74b8a125b257af5d8e","isMergeCommit":true,"messageTitle":"Merge pull request #18 from Xuan127/master","messageBody":"Edit about us","fileTypesAndContributionMap":{}}]},{"date":"2023-10-05","commitResults":[{"hash":"003780bb06ecac8bee2c18e8948d8d7f66655599","isMergeCommit":true,"messageTitle":"Merge pull request #19 from WooKaiNing/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"32561088218b1f32a1c2dff4d020eb7a69145939","isMergeCommit":false,"messageTitle":"Add UI class with simple methods to handle UI functionalities","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":43,"deletions":0},"other":{"insertions":14,"deletions":8}}},{"hash":"4a9061355d66bbb8a7252994ccd2ffa15dbc60ce","isMergeCommit":false,"messageTitle":"Fix gradle build to use cashLeh class instead","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":2,"deletions":2}}},{"hash":"953c018e11fc0d7ccbe37a9b5c9847a34c736d74","isMergeCommit":false,"messageTitle":"Fix IO redirection test by copying the file directly instead of file contents","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":0,"deletions":0}}}]}],"BenedictChannn":[{"date":"2023-10-04","commitResults":[{"hash":"28702ad39c722d65b80ef3cc2bf1852698f28448","isMergeCommit":false,"messageTitle":"Change name","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"3239ce5a111657f65513453e9751b5b9ad214506","isMergeCommit":true,"messageTitle":"Merge pull request #17 from mcmc101001/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"ca11a15a456788acfe148123ffe811c635e06e57","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}}]}],"WooKaiNing":[{"date":"2023-10-04","commitResults":[{"hash":"f24118be41282d5253e3a73d39895a4712478f84","isMergeCommit":false,"messageTitle":"Add name to AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":5,"deletions":5}}},{"hash":"d86a47d92195137b19bede463d162ea013325a51","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"506848c881c64a86d76835d0c1ecd462cecc9964","isMergeCommit":true,"messageTitle":"Merge pull request #25 from danielpappa/level-1-income","messageBody":"Level-1-income","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Xuan127":{"docs":1,"functional-code":50,"test-code":0},"danielpappa":{"docs":40,"functional-code":167,"test-code":63},"mcmc101001":{"docs":1,"functional-code":52,"test-code":1,"other":2},"BenedictChannn":{"docs":2,"functional-code":0,"test-code":0},"WooKaiNing":{"docs":2,"functional-code":0,"test-code":0}},"authorContributionVariance":{"Xuan127":287.35733,"danielpappa":3635.086,"mcmc101001":245.30196,"BenedictChannn":9.772854,"WooKaiNing":4.9861493},"authorDisplayNameMap":{"Xuan127":"CS2113-W12-2 SHAN..XUAN","danielpappa":"CS2113-W12-2 PAPP..NIEL","mcmc101001":"CS2113-W12-2 TOH ..CHUN","BenedictChannn":"CS2113-W12-2 CHAN..DICT","WooKaiNing":"CS2113-W12-2 WOO ..NING"}} +{"authorDailyContributionsMap":{"Xuan127":[{"date":"2023-10-04","commitResults":[{"hash":"92527fd32c5b5fa00119b754e79e8f90a7aec990","isMergeCommit":false,"messageTitle":"Edit about us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}},{"hash":"202d4740acca25f35994264b9b82e37fafee606b","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027upstream/master\u0027","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"1969944e3707bc31b0f1f34b8840b88c6dfb9c11","isMergeCommit":true,"messageTitle":"Merge pull request #21 from danielpappa/master","messageBody":"Update name in first line","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"f7da23047dea85e15ea67b57be6a9919992ff63f","isMergeCommit":false,"messageTitle":"Initialize and implement quit","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":1}}},{"hash":"6d87e67f7da1087ac4e36b352008de1803e15a40","isMergeCommit":false,"messageTitle":"Change the starting prints","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":9,"deletions":7}}},{"hash":"04d0249fce8ab50119cf0cb1190da0a330d7c9dc","isMergeCommit":false,"messageTitle":"Create Input class","messageBody":"Fixes #22\n","fileTypesAndContributionMap":{"functional-code":{"insertions":22,"deletions":7}}},{"hash":"4fffba3cf6fd42d3c60b399bd50f985068477911","isMergeCommit":false,"messageTitle":"Shorten line 17 in main","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1}}},{"hash":"638c97db74be058316ed191d5a389a91503089e2","isMergeCommit":false,"messageTitle":"Add check for if there is next line of input","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":1}}},{"hash":"0e5d466cb2687bd3d2521aceabf8d1729c94bad0","isMergeCommit":true,"messageTitle":"Merge pull request #24 from mcmc101001/branch-Ui-Class","messageBody":"Add UI class with simple methods to handle UI functionalities","fileTypesAndContributionMap":{}},{"hash":"503fdcda1131acf16720adc8697374ece53edaed","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027upstream/master\u0027 into initialisation_and_exit","messageBody":"# Conflicts:\n#\tsrc/main/java/cashleh/CashLeh.java\n#\tsrc/main/java/cashleh/Input.java\n","fileTypesAndContributionMap":{}},{"hash":"fd51ee65ba035a1ffd51a50bcc20dce14737fe80","isMergeCommit":false,"messageTitle":"Add some javadoc for Input class and use ui class to print everything","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":9,"deletions":2}}},{"hash":"75a0f86038ee8bc5f38140bff6b2f96e4d2495ce","isMergeCommit":false,"messageTitle":"Edit test files","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}}]}],"danielpappa":[{"date":"2023-10-04","commitResults":[{"hash":"6a88a35d1e499a86502311ce617b3d273dcc48f0","isMergeCommit":false,"messageTitle":"Update name in first line","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"f7b2b1acc55cdbeeb912672b5302a2cf4cee27b5","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"c4a9e0a615eb0fb6cc4694b04fb50e7f95f42ca8","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"f6577bec4bf20fbbb68bca3b6a6f499b46ad59ab","isMergeCommit":true,"messageTitle":"Merge pull request #20 from BenedictChannn/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"fc7b489e76f9b9d817a5d16c99642e4636727f93","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"4fd7937372050ab7ff3596f79b26cad7b7d53544","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"223df0aaf53c99b427d96f0976496c4cb88987e3","isMergeCommit":false,"messageTitle":"Rename main class into CashLeh and remove previous content","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":12,"deletions":21},"test-code":{"insertions":0,"deletions":12}}},{"hash":"93072c4de558ecd02adb511e630e57cf1bc1723f","isMergeCommit":false,"messageTitle":"Create class Income and IncomeStatement","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":81,"deletions":0},"test-code":{"insertions":12,"deletions":0}}},{"hash":"644bb97ee4809fec84ba24c2e6073e0988eb5a6a","isMergeCommit":false,"messageTitle":"Create class Command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":25,"deletions":0}}},{"hash":"d5070be237065862b655a113d2baf790e7c090d4","isMergeCommit":false,"messageTitle":"Create classes AddIncome, DeleteIncome and ViewIncome","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":47,"deletions":0}}}]},{"date":"2023-10-10","commitResults":[{"hash":"81ac2823b911e1d6829a287d6a2b0251ef5edcec","isMergeCommit":false,"messageTitle":"Update developer guide to contain info related to income","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":42,"deletions":13}}},{"hash":"f11e9c051add403df3307911977c89a969b2969d","isMergeCommit":false,"messageTitle":"Update viewIncomes to follow user guide","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":28,"deletions":13}}},{"hash":"5402f7f13ea448115f2a595844905666b555e5e2","isMergeCommit":false,"messageTitle":"Add tab before toString() method","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":3,"deletions":3}}},{"hash":"30ba3c34fb93c9b2b374634423f88e497812bde2","isMergeCommit":false,"messageTitle":"Create basic JUnit tests for Income and IncomeStatement","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":62,"deletions":0}}},{"hash":"c6b31773a8dc3d5ab25e6314353e999d144daacd","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp into level-1-income","messageBody":"# Conflicts:\n#\tsrc/main/java/cashleh/CashLeh.java\n#\tsrc/test/java/cashleh/CashLehTest.java\n#\tsrc/test/java/seedu/cashleh/CashLehTest.java\n#\tsrc/test/java/seedu/duke/DukeTest.java\n","fileTypesAndContributionMap":{}},{"hash":"3c17c38bb27dacdf333984d875b7bb4234f44bfc","isMergeCommit":true,"messageTitle":"Merge pull request #23 from Xuan127/initialisation_and_exit","messageBody":"Initialisation and exit","fileTypesAndContributionMap":{}},{"hash":"cb2f447d0cacfbaac75c7e5e15ef24a761c5e002","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp into level-1-income","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"00b0a13593f0ba617f1a5a647a6941bd8f0c13e2","isMergeCommit":false,"messageTitle":"Improve coding standard to pass tests to merge on Github","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":0,"deletions":2},"test-code":{"insertions":5,"deletions":8}}},{"hash":"355347d9e4c6e1235ee19d774f35331c88befb4b","isMergeCommit":false,"messageTitle":"Fix coding standard violation","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":2,"deletions":2}}}]}],"mcmc101001":[{"date":"2023-10-04","commitResults":[{"hash":"61869c053985866bf98597995197cda3794dc725","isMergeCommit":false,"messageTitle":"Add name to AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1},"docs":{"insertions":7,"deletions":7}}},{"hash":"d8d872f9c15f68fceacb5c74b8a125b257af5d8e","isMergeCommit":true,"messageTitle":"Merge pull request #18 from Xuan127/master","messageBody":"Edit about us","fileTypesAndContributionMap":{}}]},{"date":"2023-10-05","commitResults":[{"hash":"003780bb06ecac8bee2c18e8948d8d7f66655599","isMergeCommit":true,"messageTitle":"Merge pull request #19 from WooKaiNing/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"32561088218b1f32a1c2dff4d020eb7a69145939","isMergeCommit":false,"messageTitle":"Add UI class with simple methods to handle UI functionalities","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":43,"deletions":0},"other":{"insertions":14,"deletions":8}}},{"hash":"4a9061355d66bbb8a7252994ccd2ffa15dbc60ce","isMergeCommit":false,"messageTitle":"Fix gradle build to use cashLeh class instead","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":2,"deletions":2}}},{"hash":"953c018e11fc0d7ccbe37a9b5c9847a34c736d74","isMergeCommit":false,"messageTitle":"Fix IO redirection test by copying the file directly instead of file contents","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":0,"deletions":0}}}]},{"date":"2023-10-11","commitResults":[{"hash":"44cfd1c52c16958480387db801aaa24d2dc9cb65","isMergeCommit":false,"messageTitle":"Refactored usage of UI class in CashLeh file","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":4,"deletions":4}}},{"hash":"3391e17127b0a84ccf07c59a2a612e20f40de233","isMergeCommit":false,"messageTitle":"Added tests for all methods in Ui class","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":55,"deletions":0}}},{"hash":"0356475a61c174cb0479f1dc7fabd1fefb6c6d98","isMergeCommit":false,"messageTitle":"Split line into two to pass style check","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":2,"deletions":1}}}]}],"BenedictChannn":[{"date":"2023-10-04","commitResults":[{"hash":"28702ad39c722d65b80ef3cc2bf1852698f28448","isMergeCommit":false,"messageTitle":"Change name","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"3239ce5a111657f65513453e9751b5b9ad214506","isMergeCommit":true,"messageTitle":"Merge pull request #17 from mcmc101001/master","messageBody":"Add name to AboutUs.md","fileTypesAndContributionMap":{}},{"hash":"ca11a15a456788acfe148123ffe811c635e06e57","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}}]},{"date":"2023-10-11","commitResults":[{"hash":"1776d7b39b5fb4032c40a9d757b64af87c78e495","isMergeCommit":true,"messageTitle":"Merge pull request #26 from mcmc101001/branch-Refactor-UI-usage","messageBody":"Branch refactor UI usage","fileTypesAndContributionMap":{}},{"hash":"d8b4f5d5c024e94ee7edb1d1222b7751dc19e420","isMergeCommit":true,"messageTitle":"Merge pull request #27 from mcmc101001/branch-Ui-Test","messageBody":"Added tests for all methods in Ui class","fileTypesAndContributionMap":{}}]}],"WooKaiNing":[{"date":"2023-10-04","commitResults":[{"hash":"f24118be41282d5253e3a73d39895a4712478f84","isMergeCommit":false,"messageTitle":"Add name to AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":5,"deletions":5}}},{"hash":"d86a47d92195137b19bede463d162ea013325a51","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-2/tp","messageBody":"","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"506848c881c64a86d76835d0c1ecd462cecc9964","isMergeCommit":true,"messageTitle":"Merge pull request #25 from danielpappa/level-1-income","messageBody":"Level-1-income","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"Xuan127":{"docs":1,"functional-code":46,"test-code":0},"danielpappa":{"docs":40,"functional-code":167,"test-code":63},"mcmc101001":{"docs":1,"functional-code":57,"test-code":56,"other":2},"BenedictChannn":{"docs":2,"functional-code":0,"test-code":0},"WooKaiNing":{"docs":2,"functional-code":0,"test-code":0}},"authorContributionVariance":{"Xuan127":273.78998,"danielpappa":3475.1274,"mcmc101001":412.54004,"BenedictChannn":9.310002,"WooKaiNing":4.75},"authorDisplayNameMap":{"Xuan127":"CS2113-W12-2 SHAN..XUAN","danielpappa":"CS2113-W12-2 PAPP..NIEL","mcmc101001":"CS2113-W12-2 TOH ..CHUN","BenedictChannn":"CS2113-W12-2 CHAN..DICT","WooKaiNing":"CS2113-W12-2 WOO ..NING"}} diff --git a/AY2324S1-CS2113-W12-4_tp_master/authorship.json b/AY2324S1-CS2113-W12-4_tp_master/authorship.json index 453bd29..a9093d8 100644 --- a/AY2324S1-CS2113-W12-4_tp_master/authorship.json +++ b/AY2324S1-CS2113-W12-4_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" mainClass.set(\"fittrack.FitTrack\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" archiveBaseName.set(\"duke\")","lastModifiedDate":"2023-09-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"ICubE-":1,"-":45}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"J0shuaLeong"},"content":"--------|:------------:|:----------------------------------------:|:---------:","lastModifiedDate":"2023-10-06"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Faris Sirraj | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeon Jeho | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"J0shuaLeong"},"content":"\u003cimg src\u003d\"images/joshua.jpg\" width \u003d 25% height \u003d 25%\u003e | Joshua Leong | [Github](https://github.com/J0shuaLeong) | [Portfolio](docs/team/joshua.md)","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"NgLixuanNixon"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ng Lixuan Nixon | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"marklin2234"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Mark Lin | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"NgLixuanNixon"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"NgLixuanNixon":2,"J0shuaLeong":2,"ICubE-":1,"marklin2234":1,"-":3,"farissirraj":1}},{"path":"docs/team/joshua.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"J0shuaLeong"},"content":"# Joshua - Project Portfolio Page","lastModifiedDate":"2023-10-06"},{"lineNumber":2,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":3,"author":{"gitId":"J0shuaLeong"},"content":"## Overview","lastModifiedDate":"2023-10-06"},{"lineNumber":4,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":5,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":6,"author":{"gitId":"J0shuaLeong"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-06"}],"authorContributionMap":{"J0shuaLeong":6}},{"path":"src/main/java/fittrack/FitTrack.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" * Represents the main part of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":"public class FitTrack {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" private final UserProfile userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" private final MealList meals;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" private final WorkList works;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" private final Ui ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" private FitTrack() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" userProfile \u003d new UserProfile();","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" meals \u003d new MealList();","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" works \u003d new WorkList();","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" * Main entry-point for the FitTrack application.","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" new FitTrack().run();","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" private void run() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" start();","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" loopCommandExecution();","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" end();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" private void start() {","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" ui.printWelcome();","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" private void loopCommandExecution() {","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" Command command;","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" do {","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" String userCommandLine \u003d ui.scanCommandLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" command \u003d new CommandParser().parseCommand(userCommandLine);","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" CommandResult commandResult \u003d executeCommand(command);","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":" ui.printCommandResult(commandResult);","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":" } while (!ExitCommand.isExit(command));","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"ICubE-"},"content":" private CommandResult executeCommand(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"ICubE-"},"content":" command.setData(userProfile, meals, works);","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"ICubE-"},"content":" return command.execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"ICubE-"},"content":" private void end() {","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":59}},{"path":"src/main/java/fittrack/MealList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class MealList {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" * Represents the user interface of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"public class Ui {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private final Scanner in;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" * Constructs UI of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" public Ui() {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" * Scans a line from the user input.","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" * @return user input as a line of string","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" private String scanNextLine() {","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" return in.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" * Scans a command line from the user input.","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" * @return command line as a line of string","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" public String scanCommandLine() {","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" return scanNextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" public void printBlankLine() {","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" System.out.println();","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" public void printWelcome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" System.out.println(\"Welcome!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" public void printCommandResult(CommandResult commandResult) {","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" System.out.println(commandResult.getFeedback());","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":" printBlankLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":50}},{"path":"src/main/java/fittrack/UserProfile.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class UserProfile {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/WorkList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class WorkList {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/command/AddMealCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class AddMealCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"addmeal\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/AddWorkCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class AddWorkCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"addwork\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/CheckCalorieSurplusLimitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class CheckCalorieSurplusLimitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkCSL\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":10}},{"path":"src/main/java/fittrack/command/CheckHeightCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class CheckHeightCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkHeight\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":10}},{"path":"src/main/java/fittrack/command/CheckWeightCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class CheckWeightCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkWeight\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":10}},{"path":"src/main/java/fittrack/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.MealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.UserProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.WorkList;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"public abstract class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" protected UserProfile userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" protected MealList mealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" protected WorkList workList;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" * Set data of the command for execution.","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" * @param userProfile user profile","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" * @param mealList meal list","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" * @param workList work list","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" public void setData(UserProfile userProfile, MealList mealList, WorkList workList) {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" this.userProfile \u003d userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" this.mealList \u003d mealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" this.workList \u003d workList;","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" * Execute the command.","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" * @return result of the execution","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" public abstract CommandResult execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" * Apply arguments to its field using parser.","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" * @param args arguments as a string","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":" * @param parser parser","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" public abstract void setArguments(String args, CommandParser parser);","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" * Returns help of the command.","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" * @return help","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" protected abstract String getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":47}},{"path":"src/main/java/fittrack/command/CommandResult.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class CommandResult {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":" private String feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public CommandResult(String feedback) {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" setFeedback(feedback);","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" public String getFeedback() {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" return feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setFeedback(String feedback) {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" this.feedback \u003d feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":17}},{"path":"src/main/java/fittrack/command/DeleteMealCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class DeleteMealCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"deletemeal\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/DeleteWorkCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class DeleteWorkCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"deletework\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/EditProfileCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class EditProfileCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"editprofile\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/ExitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"exit\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" private static final String DESCRIPTION \u003d \"`\" + COMMAND_WORD + \"` makes you to exit this program.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" private static final String USAGE \u003d \"Type `exit` to exit.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" private static final String HELP \u003d DESCRIPTION + \"\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private static final String MESSAGE_EXIT \u003d \"bye!\";","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" public static boolean isExit(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" return command instanceof ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" return new CommandResult(MESSAGE_EXIT);","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" return HELP;","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":30}},{"path":"src/main/java/fittrack/command/HelpCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import static fittrack.parser.CommandParser.ALL_COMMAND_WORDS;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"public class HelpCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"help\";","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" private static final String DESCRIPTION \u003d \"`\" + COMMAND_WORD + \"` shows help message of the command.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private static final String KNOWN_COMMANDS \u003d \"Existing commands:\\n\" + ALL_COMMAND_WORDS;","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" private static final String USAGE \u003d \"Type `help` or `help \u003cCOMMAND\u003e` to view help.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" private static final String HELP \u003d DESCRIPTION + \"\\n\" + KNOWN_COMMANDS + \"\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" private static final String MESSAGE_INVALID_COMMAND \u003d \"`%s` is an invalid command.\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" private String helpMessage;","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" return new CommandResult(helpMessage);","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" String word \u003d parser.getFirstWord(args);","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" if (word.isEmpty()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" return;","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" Command blankCommand \u003d parser.getBlankCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" if (blankCommand instanceof InvalidCommand) {","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d String.format(MESSAGE_INVALID_COMMAND, word);","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" return;","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d blankCommand.getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" return HELP;","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":45}},{"path":"src/main/java/fittrack/command/InvalidCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class InvalidCommand extends Command {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" private final String inputWord;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" private HelpCommand helpCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public InvalidCommand(String inputWord) {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" this.inputWord \u003d inputWord;","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" return helpCommand.execute();","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" helpCommand \u003d new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" helpCommand.setArguments(inputWord, parser);","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" throw new UnsupportedOperationException();","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":28}},{"path":"src/main/java/fittrack/command/ListWorkoutCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class ListWorkoutCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"listWorkout\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":11}},{"path":"src/main/java/fittrack/command/SetCalorieSurplusLimitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class SetCalorieSurplusLimitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"setlimit\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/SetDailyCalorieLimitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class SetDailyCalorieLimitCommand extends Command{","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"setDCL\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":11}},{"path":"src/main/java/fittrack/parser/CommandParser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.AddMealCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.AddWorkCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckCalorieSurplusLimitCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckHeightCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckWeightCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.Command;","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.DeleteMealCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.DeleteWorkCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.EditProfileCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ExitCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.HelpCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.InvalidCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ListWorkoutCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.SetCalorieSurplusLimitCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.SetDailyCalorieLimitCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"public class CommandParser {","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" // This constant has to be changed whenever any command is added.","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" public static final String ALL_COMMAND_WORDS \u003d","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" \"help, exit, editprofile, addmeal, deletemeal, addwork, deletework, setlimit, listall\";","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" private static final Pattern COMMAND_PATTERN \u003d Pattern.compile(","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" \"(?\u003cword\u003e\\\\S+)(?\u003cargs\u003e.*)\"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" private static final Pattern PROFILE_PATTERN \u003d Pattern.compile(","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" \"h/(?\u003cheight\u003e\\\\S+)\\\\s+w/(?\u003cweight\u003e\\\\S+)\"","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" );","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" public Command parseCommand(String userCommandLine) {","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" final Matcher matcher \u003d COMMAND_PATTERN.matcher(userCommandLine.strip());","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" if (!matcher.matches()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":" Command command \u003d new InvalidCommand(userCommandLine);","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" command.setArguments(null, this);","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" return command;","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" final String word \u003d matcher.group(\"word\").strip();","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" final String args \u003d matcher.group(\"args\").strip();","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" Command command \u003d getBlankCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" command.setArguments(args, this);","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" return command;","lastModifiedDate":"2023-10-10"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":" public Command getBlankCommand(String word) {","lastModifiedDate":"2023-10-10"},{"lineNumber":51,"author":{"gitId":"ICubE-"},"content":" switch (word) {","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"ICubE-"},"content":" case HelpCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"ICubE-"},"content":" return new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":55,"author":{"gitId":"ICubE-"},"content":" case ExitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"ICubE-"},"content":" return new ExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"ICubE-"},"content":" case EditProfileCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"ICubE-"},"content":" return new EditProfileCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"ICubE-"},"content":" case AddMealCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"ICubE-"},"content":" return new AddMealCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"ICubE-"},"content":" case DeleteMealCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"ICubE-"},"content":" return new DeleteMealCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":63,"author":{"gitId":"ICubE-"},"content":" case AddWorkCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"ICubE-"},"content":" return new AddWorkCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"ICubE-"},"content":" case DeleteWorkCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":66,"author":{"gitId":"ICubE-"},"content":" return new DeleteWorkCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":67,"author":{"gitId":"ICubE-"},"content":" case SetCalorieSurplusLimitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":68,"author":{"gitId":"ICubE-"},"content":" return new SetCalorieSurplusLimitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":69,"author":{"gitId":"farissirraj"},"content":" case CheckHeightCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":70,"author":{"gitId":"farissirraj"},"content":" return new CheckHeightCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":71,"author":{"gitId":"farissirraj"},"content":" case CheckWeightCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":72,"author":{"gitId":"farissirraj"},"content":" return new CheckWeightCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":73,"author":{"gitId":"farissirraj"},"content":" case CheckCalorieSurplusLimitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":74,"author":{"gitId":"farissirraj"},"content":" return new CheckCalorieSurplusLimitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":75,"author":{"gitId":"farissirraj"},"content":" case ListWorkoutCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":76,"author":{"gitId":"farissirraj"},"content":" return new ListWorkoutCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":77,"author":{"gitId":"farissirraj"},"content":" case SetDailyCalorieLimitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":78,"author":{"gitId":"farissirraj"},"content":" return new SetDailyCalorieLimitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":79,"author":{"gitId":"ICubE-"},"content":" default:","lastModifiedDate":"2023-10-09"},{"lineNumber":80,"author":{"gitId":"ICubE-"},"content":" return new InvalidCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":81,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":82,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":83,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":84,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":85,"author":{"gitId":"ICubE-"},"content":" * Parses user profile, format of `h/(HEIGHT) w/(WEIGHT)`.","lastModifiedDate":"2023-10-10"},{"lineNumber":86,"author":{"gitId":"ICubE-"},"content":" * @param profile profile as a string","lastModifiedDate":"2023-10-10"},{"lineNumber":87,"author":{"gitId":"ICubE-"},"content":" * @return height and weight as a double array","lastModifiedDate":"2023-10-10"},{"lineNumber":88,"author":{"gitId":"ICubE-"},"content":" * @throws RegexMatchFailException if regex match fails","lastModifiedDate":"2023-10-10"},{"lineNumber":89,"author":{"gitId":"ICubE-"},"content":" * @throws NumberFormatException if one of arguments is not double","lastModifiedDate":"2023-10-10"},{"lineNumber":90,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":91,"author":{"gitId":"ICubE-"},"content":" public double[] parseProfile(String profile) throws RegexMatchFailException, NumberFormatException {","lastModifiedDate":"2023-10-10"},{"lineNumber":92,"author":{"gitId":"ICubE-"},"content":" final Matcher matcher \u003d PROFILE_PATTERN.matcher(profile);","lastModifiedDate":"2023-10-10"},{"lineNumber":93,"author":{"gitId":"ICubE-"},"content":" if (!matcher.matches()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":94,"author":{"gitId":"ICubE-"},"content":" throw new RegexMatchFailException();","lastModifiedDate":"2023-10-10"},{"lineNumber":95,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":96,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":97,"author":{"gitId":"ICubE-"},"content":" final String height \u003d matcher.group(\"height\");","lastModifiedDate":"2023-10-10"},{"lineNumber":98,"author":{"gitId":"ICubE-"},"content":" final String weight \u003d matcher.group(\"weight\");","lastModifiedDate":"2023-10-10"},{"lineNumber":99,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":100,"author":{"gitId":"ICubE-"},"content":" return new double[]{ Double.parseDouble(height), Double.parseDouble(weight) };","lastModifiedDate":"2023-10-10"},{"lineNumber":101,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":102,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":103,"author":{"gitId":"ICubE-"},"content":" public String getFirstWord(String str) {","lastModifiedDate":"2023-10-10"},{"lineNumber":104,"author":{"gitId":"ICubE-"},"content":" return str.split(\"\\\\s\")[0];","lastModifiedDate":"2023-10-10"},{"lineNumber":105,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":106,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":96,"farissirraj":10}},{"path":"src/main/java/fittrack/parser/ParseException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class ParseException extends Exception {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/parser/RegexMatchFailException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class RegexMatchFailException extends ParseException {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/test/java/fittrack/FitTrackTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"class FitTrackTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"ICubE-":2,"-":10}}] +[{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" mainClass.set(\"fittrack.FitTrack\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"-"},"content":" archiveBaseName.set(\"duke\")","lastModifiedDate":"2023-09-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"ICubE-":1,"-":45}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"Display | Name | Github Profile | Portfolio ","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"J0shuaLeong"},"content":"--------|:------------:|:----------------------------------------:|:---------:","lastModifiedDate":"2023-10-06"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Faris Sirraj | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Yeon Jeho | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":7,"author":{"gitId":"J0shuaLeong"},"content":"\u003cimg src\u003d\"images/joshua.jpg\" width \u003d 25% height \u003d 25%\u003e | Joshua Leong | [Github](https://github.com/J0shuaLeong) | [Portfolio](docs/team/joshua.md)","lastModifiedDate":"2023-10-07"},{"lineNumber":8,"author":{"gitId":"NgLixuanNixon"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ng Lixuan Nixon | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":9,"author":{"gitId":"marklin2234"},"content":"![](https://via.placeholder.com/100.png?text\u003dPhoto) | Mark Lin | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)","lastModifiedDate":"2023-10-04"},{"lineNumber":10,"author":{"gitId":"NgLixuanNixon"},"content":"","lastModifiedDate":"2023-10-04"}],"authorContributionMap":{"NgLixuanNixon":2,"J0shuaLeong":2,"ICubE-":1,"marklin2234":1,"-":3,"farissirraj":1}},{"path":"docs/team/joshua.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"J0shuaLeong"},"content":"# Joshua - Project Portfolio Page","lastModifiedDate":"2023-10-06"},{"lineNumber":2,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":3,"author":{"gitId":"J0shuaLeong"},"content":"## Overview","lastModifiedDate":"2023-10-06"},{"lineNumber":4,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":5,"author":{"gitId":"J0shuaLeong"},"content":"","lastModifiedDate":"2023-10-06"},{"lineNumber":6,"author":{"gitId":"J0shuaLeong"},"content":"### Summary of Contributions","lastModifiedDate":"2023-10-06"}],"authorContributionMap":{"J0shuaLeong":6}},{"path":"src/main/java/fittrack/FitTrack.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.Command;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" * Represents the main part of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":"public class FitTrack {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" private final UserProfile userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" private final MealList meals;","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" private final WorkList works;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" private final Ui ui;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" private FitTrack() {","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" ui \u003d new Ui();","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" userProfile \u003d new UserProfile();","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" meals \u003d new MealList();","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" works \u003d new WorkList();","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" * Main entry-point for the FitTrack application.","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" new FitTrack().run();","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" private void run() {","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" start();","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" loopCommandExecution();","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" end();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" private void start() {","lastModifiedDate":"2023-10-09"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" ui.printWelcome();","lastModifiedDate":"2023-10-09"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" private void loopCommandExecution() {","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" Command command;","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" do {","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" String userCommandLine \u003d ui.scanCommandLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" command \u003d new CommandParser().parseCommand(userCommandLine);","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" CommandResult commandResult \u003d executeCommand(command);","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":" ui.printCommandResult(commandResult);","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":" } while (!ExitCommand.isExit(command));","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":52,"author":{"gitId":"ICubE-"},"content":" private CommandResult executeCommand(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":53,"author":{"gitId":"ICubE-"},"content":" command.setData(userProfile, meals, works);","lastModifiedDate":"2023-10-09"},{"lineNumber":54,"author":{"gitId":"ICubE-"},"content":" return command.execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"ICubE-"},"content":" private void end() {","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":59}},{"path":"src/main/java/fittrack/MealList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class MealList {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/Ui.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CommandResult;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"/**","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" * Represents the user interface of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"public class Ui {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private final Scanner in;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" * Constructs UI of FitTrack.","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" public Ui() {","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" * Scans a line from the user input.","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" * @return user input as a line of string","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" private String scanNextLine() {","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" return in.nextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-09"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" * Scans a command line from the user input.","lastModifiedDate":"2023-10-09"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" * @return command line as a line of string","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" public String scanCommandLine() {","lastModifiedDate":"2023-10-09"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" return scanNextLine();","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" public void printBlankLine() {","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" System.out.println();","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" public void printWelcome() {","lastModifiedDate":"2023-10-09"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" System.out.println(\"Welcome!\");","lastModifiedDate":"2023-10-09"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" public void printCommandResult(CommandResult commandResult) {","lastModifiedDate":"2023-10-09"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" System.out.println(commandResult.getFeedback());","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":" printBlankLine();","lastModifiedDate":"2023-10-10"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":50}},{"path":"src/main/java/fittrack/UserProfile.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class UserProfile {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/WorkList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class WorkList {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/command/AddMealCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class AddMealCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"addmeal\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/AddWorkCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class AddWorkCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"addwork\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/CheckDailyCalorieSurplusLimitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class CheckDailyCalorieSurplusLimitCommand extends Command {","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkCSL\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":13,"farissirraj":9}},{"path":"src/main/java/fittrack/command/CheckHeightCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class CheckHeightCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkHeight\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":10}},{"path":"src/main/java/fittrack/command/CheckWeightCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class CheckWeightCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"checkWeight\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":10}},{"path":"src/main/java/fittrack/command/Command.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.MealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.UserProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.WorkList;","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"public abstract class Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" protected UserProfile userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" protected MealList mealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" protected WorkList workList;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" * Set data of the command for execution.","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" * @param userProfile user profile","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" * @param mealList meal list","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" * @param workList work list","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" public void setData(UserProfile userProfile, MealList mealList, WorkList workList) {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" this.userProfile \u003d userProfile;","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" this.mealList \u003d mealList;","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" this.workList \u003d workList;","lastModifiedDate":"2023-10-09"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" * Execute the command.","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" * @return result of the execution","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" public abstract CommandResult execute();","lastModifiedDate":"2023-10-09"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" * Apply arguments to its field using parser.","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" * @param args arguments as a string","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":" * @param parser parser","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" public abstract void setArguments(String args, CommandParser parser);","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" * Returns help of the command.","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" *","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" * @return help","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" protected abstract String getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":47}},{"path":"src/main/java/fittrack/command/CommandResult.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class CommandResult {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":" private String feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public CommandResult(String feedback) {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" setFeedback(feedback);","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" public String getFeedback() {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" return feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setFeedback(String feedback) {","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" this.feedback \u003d feedback;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":17}},{"path":"src/main/java/fittrack/command/DeleteMealCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class DeleteMealCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"deletemeal\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/DeleteWorkCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class DeleteWorkCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"deletework\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/EditProfileCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class EditProfileCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"editprofile\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":22}},{"path":"src/main/java/fittrack/command/ExitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class ExitCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"exit\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" private static final String DESCRIPTION \u003d \"`\" + COMMAND_WORD + \"` makes you to exit this program.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":" private static final String USAGE \u003d \"Type `exit` to exit.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" private static final String HELP \u003d DESCRIPTION + \"\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private static final String MESSAGE_EXIT \u003d \"bye!\";","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" public static boolean isExit(Command command) {","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" return command instanceof ExitCommand;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" return new CommandResult(MESSAGE_EXIT);","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" return HELP;","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":30}},{"path":"src/main/java/fittrack/command/HelpCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import static fittrack.parser.CommandParser.ALL_COMMAND_WORDS;","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"public class HelpCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public static final String COMMAND_WORD \u003d \"help\";","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" private static final String DESCRIPTION \u003d \"`\" + COMMAND_WORD + \"` shows help message of the command.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" private static final String KNOWN_COMMANDS \u003d \"Existing commands:\\n\" + ALL_COMMAND_WORDS;","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":" private static final String USAGE \u003d \"Type `help` or `help \u003cCOMMAND\u003e` to view help.\";","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" private static final String HELP \u003d DESCRIPTION + \"\\n\" + KNOWN_COMMANDS + \"\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" private static final String MESSAGE_INVALID_COMMAND \u003d \"`%s` is an invalid command.\\n\" + USAGE;","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":" private String helpMessage;","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" return new CommandResult(helpMessage);","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" String word \u003d parser.getFirstWord(args);","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" if (word.isEmpty()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" return;","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":" Command blankCommand \u003d parser.getBlankCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" if (blankCommand instanceof InvalidCommand) {","lastModifiedDate":"2023-10-10"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d String.format(MESSAGE_INVALID_COMMAND, word);","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" return;","lastModifiedDate":"2023-10-10"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" helpMessage \u003d blankCommand.getHelp();","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":" return HELP;","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":45}},{"path":"src/main/java/fittrack/command/InvalidCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class InvalidCommand extends Command {","lastModifiedDate":"2023-10-10"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":" private final String inputWord;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":" private HelpCommand helpCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":" public InvalidCommand(String inputWord) {","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":" this.inputWord \u003d inputWord;","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":" return helpCommand.execute();","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" helpCommand \u003d new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" helpCommand.setArguments(inputWord, parser);","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" throw new UnsupportedOperationException();","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":28}},{"path":"src/main/java/fittrack/command/ListWorkoutCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"farissirraj"},"content":"public class ListWorkoutCommand extends Command {","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"listWorkout\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":12,"farissirraj":11}},{"path":"src/main/java/fittrack/command/SetDailyCalorieSurplusLimitCommand.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"farissirraj"},"content":"package fittrack.command;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.parser.CommandParser;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"public class SetDailyCalorieSurplusLimitCommand extends Command {","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"farissirraj"},"content":" public static final String COMMAND_WORD \u003d \"setDCL\";","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"farissirraj"},"content":" @Override","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"farissirraj"},"content":" public CommandResult execute() {","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"farissirraj"},"content":" return null;","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"farissirraj"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":" public void setArguments(String args, CommandParser parser) {","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":" @Override","lastModifiedDate":"2023-10-10"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":" protected String getHelp() {","lastModifiedDate":"2023-10-10"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":" return null;","lastModifiedDate":"2023-10-10"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":22,"author":{"gitId":"farissirraj"},"content":"}","lastModifiedDate":"2023-10-09"},{"lineNumber":23,"author":{"gitId":"farissirraj"},"content":"","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":13,"farissirraj":10}},{"path":"src/main/java/fittrack/parser/CommandParser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.AddMealCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.AddWorkCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":5,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckDailyCalorieSurplusLimitCommand;","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckHeightCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.CheckWeightCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":8,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.Command;","lastModifiedDate":"2023-10-10"},{"lineNumber":9,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.DeleteMealCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":10,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.DeleteWorkCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":11,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.EditProfileCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":12,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ExitCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":13,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.HelpCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":14,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.InvalidCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":15,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.ListWorkoutCommand;","lastModifiedDate":"2023-10-10"},{"lineNumber":16,"author":{"gitId":"ICubE-"},"content":"import fittrack.command.SetDailyCalorieSurplusLimitCommand;","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"ICubE-"},"content":"import java.util.regex.Matcher;","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"ICubE-"},"content":"import java.util.regex.Pattern;","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":21,"author":{"gitId":"ICubE-"},"content":"public class CommandParser {","lastModifiedDate":"2023-10-09"},{"lineNumber":22,"author":{"gitId":"ICubE-"},"content":" // This constant has to be changed whenever any command is added.","lastModifiedDate":"2023-10-10"},{"lineNumber":23,"author":{"gitId":"ICubE-"},"content":" public static final String ALL_COMMAND_WORDS \u003d","lastModifiedDate":"2023-10-10"},{"lineNumber":24,"author":{"gitId":"ICubE-"},"content":" \"help, exit, editprofile, addmeal, deletemeal, addwork, deletework, setlimit, listall\";","lastModifiedDate":"2023-10-10"},{"lineNumber":25,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":26,"author":{"gitId":"ICubE-"},"content":" private static final Pattern COMMAND_PATTERN \u003d Pattern.compile(","lastModifiedDate":"2023-10-10"},{"lineNumber":27,"author":{"gitId":"ICubE-"},"content":" \"(?\u003cword\u003e\\\\S+)(?\u003cargs\u003e.*)\"","lastModifiedDate":"2023-10-09"},{"lineNumber":28,"author":{"gitId":"ICubE-"},"content":" );","lastModifiedDate":"2023-10-09"},{"lineNumber":29,"author":{"gitId":"ICubE-"},"content":" private static final Pattern PROFILE_PATTERN \u003d Pattern.compile(","lastModifiedDate":"2023-10-10"},{"lineNumber":30,"author":{"gitId":"ICubE-"},"content":" \"h/(?\u003cheight\u003e\\\\S+)\\\\s+w/(?\u003cweight\u003e\\\\S+)\"","lastModifiedDate":"2023-10-10"},{"lineNumber":31,"author":{"gitId":"ICubE-"},"content":" );","lastModifiedDate":"2023-10-10"},{"lineNumber":32,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"ICubE-"},"content":" public Command parseCommand(String userCommandLine) {","lastModifiedDate":"2023-10-09"},{"lineNumber":34,"author":{"gitId":"ICubE-"},"content":" final Matcher matcher \u003d COMMAND_PATTERN.matcher(userCommandLine.strip());","lastModifiedDate":"2023-10-10"},{"lineNumber":35,"author":{"gitId":"ICubE-"},"content":" if (!matcher.matches()) {","lastModifiedDate":"2023-10-09"},{"lineNumber":36,"author":{"gitId":"ICubE-"},"content":" Command command \u003d new InvalidCommand(userCommandLine);","lastModifiedDate":"2023-10-10"},{"lineNumber":37,"author":{"gitId":"ICubE-"},"content":" command.setArguments(null, this);","lastModifiedDate":"2023-10-10"},{"lineNumber":38,"author":{"gitId":"ICubE-"},"content":" return command;","lastModifiedDate":"2023-10-10"},{"lineNumber":39,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":40,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":41,"author":{"gitId":"ICubE-"},"content":" final String word \u003d matcher.group(\"word\").strip();","lastModifiedDate":"2023-10-10"},{"lineNumber":42,"author":{"gitId":"ICubE-"},"content":" final String args \u003d matcher.group(\"args\").strip();","lastModifiedDate":"2023-10-10"},{"lineNumber":43,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":44,"author":{"gitId":"ICubE-"},"content":" Command command \u003d getBlankCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":45,"author":{"gitId":"ICubE-"},"content":" command.setArguments(args, this);","lastModifiedDate":"2023-10-10"},{"lineNumber":46,"author":{"gitId":"ICubE-"},"content":" return command;","lastModifiedDate":"2023-10-10"},{"lineNumber":47,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":48,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":49,"author":{"gitId":"ICubE-"},"content":" public Command getBlankCommand(String word) {","lastModifiedDate":"2023-10-10"},{"lineNumber":50,"author":{"gitId":"ICubE-"},"content":" switch (word) {","lastModifiedDate":"2023-10-09"},{"lineNumber":51,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":52,"author":{"gitId":"ICubE-"},"content":" case HelpCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-10"},{"lineNumber":53,"author":{"gitId":"ICubE-"},"content":" return new HelpCommand();","lastModifiedDate":"2023-10-10"},{"lineNumber":54,"author":{"gitId":"ICubE-"},"content":" case ExitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":55,"author":{"gitId":"ICubE-"},"content":" return new ExitCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":56,"author":{"gitId":"ICubE-"},"content":" case EditProfileCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":57,"author":{"gitId":"ICubE-"},"content":" return new EditProfileCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":58,"author":{"gitId":"ICubE-"},"content":" case AddMealCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":59,"author":{"gitId":"ICubE-"},"content":" return new AddMealCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":60,"author":{"gitId":"ICubE-"},"content":" case DeleteMealCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":61,"author":{"gitId":"ICubE-"},"content":" return new DeleteMealCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":62,"author":{"gitId":"ICubE-"},"content":" case AddWorkCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":63,"author":{"gitId":"ICubE-"},"content":" return new AddWorkCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":64,"author":{"gitId":"ICubE-"},"content":" case DeleteWorkCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":65,"author":{"gitId":"ICubE-"},"content":" return new DeleteWorkCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":66,"author":{"gitId":"farissirraj"},"content":" case CheckHeightCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":67,"author":{"gitId":"farissirraj"},"content":" return new CheckHeightCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":68,"author":{"gitId":"farissirraj"},"content":" case CheckWeightCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":69,"author":{"gitId":"farissirraj"},"content":" return new CheckWeightCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":70,"author":{"gitId":"ICubE-"},"content":" case CheckDailyCalorieSurplusLimitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-11"},{"lineNumber":71,"author":{"gitId":"ICubE-"},"content":" return new CheckDailyCalorieSurplusLimitCommand();","lastModifiedDate":"2023-10-11"},{"lineNumber":72,"author":{"gitId":"farissirraj"},"content":" case ListWorkoutCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-09"},{"lineNumber":73,"author":{"gitId":"farissirraj"},"content":" return new ListWorkoutCommand();","lastModifiedDate":"2023-10-09"},{"lineNumber":74,"author":{"gitId":"ICubE-"},"content":" case SetDailyCalorieSurplusLimitCommand.COMMAND_WORD:","lastModifiedDate":"2023-10-11"},{"lineNumber":75,"author":{"gitId":"ICubE-"},"content":" return new SetDailyCalorieSurplusLimitCommand();","lastModifiedDate":"2023-10-11"},{"lineNumber":76,"author":{"gitId":"ICubE-"},"content":" default:","lastModifiedDate":"2023-10-09"},{"lineNumber":77,"author":{"gitId":"ICubE-"},"content":" return new InvalidCommand(word);","lastModifiedDate":"2023-10-10"},{"lineNumber":78,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":79,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":80,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":81,"author":{"gitId":"ICubE-"},"content":" /**","lastModifiedDate":"2023-10-10"},{"lineNumber":82,"author":{"gitId":"ICubE-"},"content":" * Parses user profile, format of `h/(HEIGHT) w/(WEIGHT)`.","lastModifiedDate":"2023-10-10"},{"lineNumber":83,"author":{"gitId":"ICubE-"},"content":" * @param profile profile as a string","lastModifiedDate":"2023-10-10"},{"lineNumber":84,"author":{"gitId":"ICubE-"},"content":" * @return height and weight as a double array","lastModifiedDate":"2023-10-10"},{"lineNumber":85,"author":{"gitId":"ICubE-"},"content":" * @throws RegexMatchFailException if regex match fails","lastModifiedDate":"2023-10-10"},{"lineNumber":86,"author":{"gitId":"ICubE-"},"content":" * @throws NumberFormatException if one of arguments is not double","lastModifiedDate":"2023-10-10"},{"lineNumber":87,"author":{"gitId":"ICubE-"},"content":" */","lastModifiedDate":"2023-10-10"},{"lineNumber":88,"author":{"gitId":"ICubE-"},"content":" public double[] parseProfile(String profile) throws RegexMatchFailException, NumberFormatException {","lastModifiedDate":"2023-10-10"},{"lineNumber":89,"author":{"gitId":"ICubE-"},"content":" final Matcher matcher \u003d PROFILE_PATTERN.matcher(profile);","lastModifiedDate":"2023-10-10"},{"lineNumber":90,"author":{"gitId":"ICubE-"},"content":" if (!matcher.matches()) {","lastModifiedDate":"2023-10-10"},{"lineNumber":91,"author":{"gitId":"ICubE-"},"content":" throw new RegexMatchFailException();","lastModifiedDate":"2023-10-10"},{"lineNumber":92,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":93,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":94,"author":{"gitId":"ICubE-"},"content":" final String height \u003d matcher.group(\"height\");","lastModifiedDate":"2023-10-10"},{"lineNumber":95,"author":{"gitId":"ICubE-"},"content":" final String weight \u003d matcher.group(\"weight\");","lastModifiedDate":"2023-10-10"},{"lineNumber":96,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":97,"author":{"gitId":"ICubE-"},"content":" return new double[]{ Double.parseDouble(height), Double.parseDouble(weight) };","lastModifiedDate":"2023-10-10"},{"lineNumber":98,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":99,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":100,"author":{"gitId":"ICubE-"},"content":" public String getFirstWord(String str) {","lastModifiedDate":"2023-10-10"},{"lineNumber":101,"author":{"gitId":"ICubE-"},"content":" return str.split(\"\\\\s\")[0];","lastModifiedDate":"2023-10-10"},{"lineNumber":102,"author":{"gitId":"ICubE-"},"content":" }","lastModifiedDate":"2023-10-10"},{"lineNumber":103,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"ICubE-":97,"farissirraj":6}},{"path":"src/main/java/fittrack/parser/ParseException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class ParseException extends Exception {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/main/java/fittrack/parser/RegexMatchFailException.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack.parser;","lastModifiedDate":"2023-10-10"},{"lineNumber":2,"author":{"gitId":"ICubE-"},"content":"","lastModifiedDate":"2023-10-10"},{"lineNumber":3,"author":{"gitId":"ICubE-"},"content":"public class RegexMatchFailException extends ParseException {","lastModifiedDate":"2023-10-10"},{"lineNumber":4,"author":{"gitId":"ICubE-"},"content":"}","lastModifiedDate":"2023-10-10"}],"authorContributionMap":{"ICubE-":4}},{"path":"src/test/java/fittrack/FitTrackTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"ICubE-"},"content":"package fittrack;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"ICubE-"},"content":"class FitTrackTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" public void sampleTest() {","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"ICubE-":2,"-":10}}] diff --git a/AY2324S1-CS2113-W12-4_tp_master/commits.json b/AY2324S1-CS2113-W12-4_tp_master/commits.json index 8753616..910aa6c 100644 --- a/AY2324S1-CS2113-W12-4_tp_master/commits.json +++ b/AY2324S1-CS2113-W12-4_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"NgLixuanNixon":[{"date":"2023-10-04","commitResults":[{"hash":"4ab6262ae774e0814318657e4c558d6cc3350673","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"101aed2384bcb8998fc22b98f9e0e60fe4db98a1","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-4/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"8ba23607fabe7e06789e5d3f3e43be80846d20d6","isMergeCommit":true,"messageTitle":"Merge pull request #4 from NgLixuanNixon/master","messageBody":"no message","fileTypesAndContributionMap":{}}]}],"J0shuaLeong":[{"date":"2023-10-04","commitResults":[{"hash":"39225c42663245b93019510083b7e04ff9cb9da8","isMergeCommit":false,"messageTitle":"Testing merge conflicts (#1)","messageBody":"Co-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":2}}}]},{"date":"2023-10-06","commitResults":[{"hash":"12ea145c28769e5788ab86fcfb3c0f1c12034e40","isMergeCommit":false,"messageTitle":"Add Github Url (#5)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"56f586e798bf3b7040b68cfc62cfd8387b56cfa8","isMergeCommit":false,"messageTitle":"Update about us (#6)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n* Updated about us for Joshua\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":1}}}]},{"date":"2023-10-07","commitResults":[{"hash":"a2d753035d1753279501aa0248b3b77f0938735a","isMergeCommit":false,"messageTitle":"Updated images (#7)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n* Updated about us for Joshua\r\n\r\n* Resized profile image\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}}]}],"ICubE-":[{"date":"2023-10-04","commitResults":[{"hash":"abbffb5b236ae12b40cbc1d1b417c696eb1895cb","isMergeCommit":false,"messageTitle":"Update AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"23e7c820a25b9502c982950501d8a63f4426d090","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"39e108362a8dae6e9420224e6a55b0ee160dbae5","isMergeCommit":true,"messageTitle":"Merge pull request #3 from ICubE-/master","messageBody":"Update AboutUs.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"7c693bb7c412eb7a6cfc6d7f099d7bb94aae2aeb","isMergeCommit":false,"messageTitle":"Construct main structure","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":51,"deletions":21},"other":{"insertions":2,"deletions":2}}},{"hash":"fb340aa0ea5ed0cd1c6dde8b051cbbcaa792194e","isMergeCommit":false,"messageTitle":"Fix style","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":7,"deletions":7}}},{"hash":"8912dea13964567d796fa4bbc76d55588b1ec207","isMergeCommit":false,"messageTitle":"Fix test","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"86c0f2188bcea12f5a76d997b017234465006224","isMergeCommit":true,"messageTitle":"Merge pull request #19 from ICubE-/construct-main-structure","messageBody":"Construct main structure","fileTypesAndContributionMap":{}},{"hash":"f8d2bbcd00c0d11ae2629994771c4c164eaf0316","isMergeCommit":false,"messageTitle":"Add parser","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":242,"deletions":6}}},{"hash":"bd9b6f1918fe1e779ba23341f6d95e2bb2c92395","isMergeCommit":true,"messageTitle":"Merge pull request #21 from ICubE-/add-command-line-parser","messageBody":"Add parser","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"9839af36423c550dbbb9e9b81a0c434c7508b92a","isMergeCommit":false,"messageTitle":"Add parser feature Implement help","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":317,"deletions":10}}},{"hash":"9fcf9cfd45f0fe46041507e01ec9a5fd53943e14","isMergeCommit":true,"messageTitle":"Merge pull request #23 from ICubE-/add-command-line-parser","messageBody":"Add parser feature\r\nImplement help","fileTypesAndContributionMap":{}}]}],"marklin2234":[{"date":"2023-10-04","commitResults":[{"hash":"9d5c2b2aeb519efd81570d45afba1fd7efd61325","isMergeCommit":false,"messageTitle":"change name (#2)","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":1}}}]}],"farissirraj":[{"date":"2023-10-04","commitResults":[{"hash":"d29c533ec8490161881211184e028eb258c44809","isMergeCommit":false,"messageTitle":"Change name in About Us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]},{"date":"2023-10-09","commitResults":[{"hash":"7bb04d887d4ece7439d62030cfa67a5d840825c7","isMergeCommit":false,"messageTitle":"Create class for checking calorie surplus limit command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"a212cb420bd3cf786e68bbddb94452a5d41867af","isMergeCommit":false,"messageTitle":"Create class for checking the height","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"5d4b5515c143fe1c0f60dd65b5e86c6930cb7c12","isMergeCommit":false,"messageTitle":"Create class for checking the weight","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"6042ca31a30101f604c269182bfe03db3c1d73f8","isMergeCommit":false,"messageTitle":"Create class for listing the workout","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":0}}},{"hash":"7e623f8cf9bc78fc3ebdae9068637c23022448a5","isMergeCommit":false,"messageTitle":"Create class for setting the daily calorie limit","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":0}}},{"hash":"040b81c6dceccbbf71d81692fcf9d7e04571af43","isMergeCommit":false,"messageTitle":"Update Command Parser Class with the new command class constructor calls","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":11}}},{"hash":"26808bf357e853bc3f770f7ca8f9e01e92c45ed0","isMergeCommit":true,"messageTitle":"Merge pull request #22 from farissirraj/BasicCommands","messageBody":"Skeletal Implementation of Basic Commands","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"NgLixuanNixon":{"docs":2,"functional-code":0,"test-code":0},"J0shuaLeong":{"docs":8,"functional-code":0,"test-code":0},"ICubE-":{"docs":1,"functional-code":584,"test-code":2,"other":1},"marklin2234":{"docs":1,"functional-code":0,"test-code":0},"farissirraj":{"docs":1,"functional-code":62,"test-code":0}},"authorContributionVariance":{"NgLixuanNixon":9.772854,"J0shuaLeong":24.138502,"ICubE-":10437.712,"marklin2234":0.44875357,"farissirraj":277.0748},"authorDisplayNameMap":{"NgLixuanNixon":"CS2113-W12-4 NG L..IXON","J0shuaLeong":"CS2113-W12-4 LEON..SHUA","ICubE-":"CS2113-W12-4 YEON..JEHO","marklin2234":"CS2113-W12-4 LIN ..ZHAO","farissirraj":"CS2113-W12-4 FARI..RRAJ"}} +{"authorDailyContributionsMap":{"NgLixuanNixon":[{"date":"2023-10-04","commitResults":[{"hash":"4ab6262ae774e0814318657e4c558d6cc3350673","isMergeCommit":false,"messageTitle":"no message","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"101aed2384bcb8998fc22b98f9e0e60fe4db98a1","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 of https://github.com/AY2324S1-CS2113-W12-4/tp","messageBody":"# Conflicts:\n#\tdocs/AboutUs.md\n","fileTypesAndContributionMap":{}},{"hash":"8ba23607fabe7e06789e5d3f3e43be80846d20d6","isMergeCommit":true,"messageTitle":"Merge pull request #4 from NgLixuanNixon/master","messageBody":"no message","fileTypesAndContributionMap":{}}]}],"J0shuaLeong":[{"date":"2023-10-04","commitResults":[{"hash":"39225c42663245b93019510083b7e04ff9cb9da8","isMergeCommit":false,"messageTitle":"Testing merge conflicts (#1)","messageBody":"Co-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":2}}}]},{"date":"2023-10-06","commitResults":[{"hash":"12ea145c28769e5788ab86fcfb3c0f1c12034e40","isMergeCommit":false,"messageTitle":"Add Github Url (#5)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"56f586e798bf3b7040b68cfc62cfd8387b56cfa8","isMergeCommit":false,"messageTitle":"Update about us (#6)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n* Updated about us for Joshua\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":1}}}]},{"date":"2023-10-07","commitResults":[{"hash":"a2d753035d1753279501aa0248b3b77f0938735a","isMergeCommit":false,"messageTitle":"Updated images (#7)","messageBody":"* Testing merge conflicts\r\n\r\n* Added url of Joshua\u0027s github account\r\n\r\n* Updated about us for Joshua\r\n\r\n* Resized profile image\r\n\r\n---------\r\n\r\nCo-authored-by: J0shuaLeong \u003cjoshualeong2607@gmail.com\u003e","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":1}}}]}],"ICubE-":[{"date":"2023-10-04","commitResults":[{"hash":"abbffb5b236ae12b40cbc1d1b417c696eb1895cb","isMergeCommit":false,"messageTitle":"Update AboutUs.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}},{"hash":"23e7c820a25b9502c982950501d8a63f4426d090","isMergeCommit":true,"messageTitle":"Resolve merge conflict","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"39e108362a8dae6e9420224e6a55b0ee160dbae5","isMergeCommit":true,"messageTitle":"Merge pull request #3 from ICubE-/master","messageBody":"Update AboutUs.md","fileTypesAndContributionMap":{}}]},{"date":"2023-10-09","commitResults":[{"hash":"7c693bb7c412eb7a6cfc6d7f099d7bb94aae2aeb","isMergeCommit":false,"messageTitle":"Construct main structure","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":51,"deletions":21},"other":{"insertions":2,"deletions":2}}},{"hash":"fb340aa0ea5ed0cd1c6dde8b051cbbcaa792194e","isMergeCommit":false,"messageTitle":"Fix style","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":7,"deletions":7}}},{"hash":"8912dea13964567d796fa4bbc76d55588b1ec207","isMergeCommit":false,"messageTitle":"Fix test","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"86c0f2188bcea12f5a76d997b017234465006224","isMergeCommit":true,"messageTitle":"Merge pull request #19 from ICubE-/construct-main-structure","messageBody":"Construct main structure","fileTypesAndContributionMap":{}},{"hash":"f8d2bbcd00c0d11ae2629994771c4c164eaf0316","isMergeCommit":false,"messageTitle":"Add parser","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":242,"deletions":6}}},{"hash":"bd9b6f1918fe1e779ba23341f6d95e2bb2c92395","isMergeCommit":true,"messageTitle":"Merge pull request #21 from ICubE-/add-command-line-parser","messageBody":"Add parser","fileTypesAndContributionMap":{}}]},{"date":"2023-10-10","commitResults":[{"hash":"9839af36423c550dbbb9e9b81a0c434c7508b92a","isMergeCommit":false,"messageTitle":"Add parser feature Implement help","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":317,"deletions":10}}},{"hash":"9fcf9cfd45f0fe46041507e01ec9a5fd53943e14","isMergeCommit":true,"messageTitle":"Merge pull request #23 from ICubE-/add-command-line-parser","messageBody":"Add parser feature\r\nImplement help","fileTypesAndContributionMap":{}}]},{"date":"2023-10-11","commitResults":[{"hash":"bfcf45955781ddbb8a86b033e7cff341b25c9140","isMergeCommit":false,"messageTitle":"Rename class names and remove duplicate","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":33},"other":{"insertions":2,"deletions":2}}},{"hash":"ea9ccf44a2a24c25748df6e398f69fe40d6c4f8b","isMergeCommit":true,"messageTitle":"Merge pull request #24 from ICubE-/master","messageBody":"Rename class names and remove duplicate","fileTypesAndContributionMap":{}}]}],"marklin2234":[{"date":"2023-10-04","commitResults":[{"hash":"9d5c2b2aeb519efd81570d45afba1fd7efd61325","isMergeCommit":false,"messageTitle":"change name (#2)","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":2,"deletions":1}}}]}],"farissirraj":[{"date":"2023-10-04","commitResults":[{"hash":"d29c533ec8490161881211184e028eb258c44809","isMergeCommit":false,"messageTitle":"Change name in About Us","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":7,"deletions":7}}}]},{"date":"2023-10-09","commitResults":[{"hash":"7bb04d887d4ece7439d62030cfa67a5d840825c7","isMergeCommit":false,"messageTitle":"Create class for checking calorie surplus limit command","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"a212cb420bd3cf786e68bbddb94452a5d41867af","isMergeCommit":false,"messageTitle":"Create class for checking the height","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"5d4b5515c143fe1c0f60dd65b5e86c6930cb7c12","isMergeCommit":false,"messageTitle":"Create class for checking the weight","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":10,"deletions":0}}},{"hash":"6042ca31a30101f604c269182bfe03db3c1d73f8","isMergeCommit":false,"messageTitle":"Create class for listing the workout","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":0}}},{"hash":"7e623f8cf9bc78fc3ebdae9068637c23022448a5","isMergeCommit":false,"messageTitle":"Create class for setting the daily calorie limit","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":0}}},{"hash":"040b81c6dceccbbf71d81692fcf9d7e04571af43","isMergeCommit":false,"messageTitle":"Update Command Parser Class with the new command class constructor calls","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":11,"deletions":11}}},{"hash":"26808bf357e853bc3f770f7ca8f9e01e92c45ed0","isMergeCommit":true,"messageTitle":"Merge pull request #22 from farissirraj/BasicCommands","messageBody":"Skeletal Implementation of Basic Commands","fileTypesAndContributionMap":{}}]}]},"authorFileTypeContributionMap":{"NgLixuanNixon":{"docs":2,"functional-code":0,"test-code":0},"J0shuaLeong":{"docs":8,"functional-code":0,"test-code":0},"ICubE-":{"docs":1,"functional-code":565,"test-code":2,"other":1},"marklin2234":{"docs":1,"functional-code":0,"test-code":0},"farissirraj":{"docs":1,"functional-code":56,"test-code":0}},"authorContributionVariance":{"NgLixuanNixon":9.310002,"J0shuaLeong":23.0275,"ICubE-":9919.811,"marklin2234":0.4275,"farissirraj":264.24},"authorDisplayNameMap":{"NgLixuanNixon":"CS2113-W12-4 NG L..IXON","J0shuaLeong":"CS2113-W12-4 LEON..SHUA","ICubE-":"CS2113-W12-4 YEON..JEHO","marklin2234":"CS2113-W12-4 LIN ..ZHAO","farissirraj":"CS2113-W12-4 FARI..RRAJ"}} diff --git a/AY2324S1-CS2113T-W11-2_tp_master/authorship.json b/AY2324S1-CS2113T-W11-2_tp_master/authorship.json index 64d8175..0a5243d 100644 --- a/AY2324S1-CS2113T-W11-2_tp_master/authorship.json +++ b/AY2324S1-CS2113T-W11-2_tp_master/authorship.json @@ -1 +1 @@ -[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Duke project template","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":" Hello from","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" ____ _ ","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" | _ \\ _ _| | _____ ","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" | | | | | | | |/ / _ \\","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" | |_| | |_| | \u003c __/","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" |____/ \\__,_|_|\\_\\___|","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" ","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":60,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":61,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":62,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":63,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":64,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"woodenclock":1,"-":63}},{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"woodenclock"},"content":" mainClass.set(\"seedu.wildwatch.WildWatch\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"woodenclock"},"content":" archiveBaseName.set(\"wildwatch\")","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"woodenclock":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"| Display | Name | Github Profile | Portfolio |","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"|-----------------------------------------------------------------------------------------|:-----------:|:----------------------------------------:|:------------------------------------:|","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"| ![](https://drive.google.com/file/d/1US5foLOzdSY_DOrzFOHrxK43M4V8U7g1/view?usp\u003dsharing) | Lee Sungmin | [Github](https://github.com/woodenclock) | [Portfolio](docs/team/leesungmin.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":6,"-":2}},{"path":"docs/team/leesungmin.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"# Lee Sungmin","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"Hi there! Hope you are doing great!","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":3}},{"path":"src/main/java/seedu/wildwatch/WildWatch.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import seedu.wildwatch.operatingsystem.BootUp;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"-"},"content":"import java.util.Scanner;","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"public class WildWatch {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":" * Main entry-point for the java.wildwatch.WildWatch application.","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2019-07-29"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":" System.out.println(BootUp.WELCOME_MESSAGE);","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"-"},"content":" System.out.println(\"What is your name?\");","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":14,"author":{"gitId":"-"},"content":" Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" System.out.println(\"Hello \" + in.nextLine());","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":17,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"woodenclock":5,"-":12}},{"path":"src/main/java/seedu/wildwatch/entry/Entry.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.entry;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"public class Entry {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" private LocalDate date;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":" private String species;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":" private String remark;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":" public Entry(String date, String species, String remark) {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":" DateTimeFormatter inputFormat \u003d DateTimeFormatter.ofPattern(\"dd-MM-yy\");","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"woodenclock"},"content":" this.date \u003d LocalDate.parse(date, inputFormat);","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"woodenclock"},"content":" this.species \u003d species;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"woodenclock"},"content":" this.remark \u003d remark;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"woodenclock"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":17}},{"path":"src/main/java/seedu/wildwatch/operatingsystem/BootUp.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.operatingsystem;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"public class BootUp {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":" public static final String WELCOME_MESSAGE \u003d","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":" \"Hello there! Welcome to Wild Watch!\\n\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":" public static final String LOGO \u003d","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" \"____ __ ____ __ __ _______ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":" \"\\\\ \\\\ / \\\\ / / | | | | | \\\\ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":" \" \\\\ \\\\/ \\\\/ / | | | | | .--. | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":" \" \\\\ / | | | | | | | | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":" \" \\\\ /\\\\ / | | | `----.| \u0027--\u0027 | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":" \" \\\\__/ \\\\__/ |__| |_______||_______/ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"woodenclock"},"content":" \" \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"woodenclock"},"content":" \"____ __ ____ ___ .___________. ______ __ __ \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"woodenclock"},"content":" \"\\\\ \\\\ / \\\\ / / / \\\\ | | / || | | | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"woodenclock"},"content":" \" \\\\ \\\\/ \\\\/ / / ^ \\\\ `---| |----`| ,----\u0027| |__| | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"woodenclock"},"content":" \" \\\\ / / /_\\\\ \\\\ | | | | | __ | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"woodenclock"},"content":" \" \\\\ /\\\\ / / _____ \\\\ | | | `----.| | | | \\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"woodenclock"},"content":" \" \\\\__/ \\\\__/ /__/ \\\\__\\\\ |__| \\\\______||__| |__| \";","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":20}},{"path":"src/main/java/seedu/wildwatch/operation/EntryList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.operation;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import seedu.wildwatch.entry.Entry;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"public class EntryList {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" private static ArrayList\u003cEntry\u003e tasks \u003d new ArrayList\u003c\u003e(); //Keeps track of all Task Instances made","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":8}},{"path":"src/test/java/seedu/wildwatch/WildWatchTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":"public class WildWatchTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":" public void isDateValid() {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"woodenclock":3,"-":10}},{"path":"text-ui-test/runtest.bat","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@echo off","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"setlocal enableextensions","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"pushd %~dp0","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"cd ..","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"call gradlew clean shadowJar","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"cd build\\libs","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"for /f \"tokens\u003d*\" %%a in (","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" \u0027dir /b *.jar\u0027","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":") do (","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" set jarloc\u003d%%a","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"java -jar %jarloc% \u003c ..\\..\\text-ui-test\\input.txt \u003e ..\\..\\text-ui-test\\ACTUAL.TXT","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"cd ..\\..\\text-ui-test","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"woodenclock"},"content":"FC ACTUAL.TXT ACTUAL.TXT \u0026\u0026 ECHO Test passed! || Echo Test failed!","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":1,"-":18}}] +[{"path":"README.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# Duke project template","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"-"},"content":"This is a project template for a greenfield Java project. It\u0027s named after the Java mascot _Duke_. Given below are instructions on how to use it.","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"## Setting up in Intellij","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version.","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project.","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":"1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":"1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/wildwatch/WildWatch.java` file, right-click it, and choose `Run WildWatch.main()`. If the setup is correct, you should see something like the below:","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":" \u003e Task :compileJava","lastModifiedDate":"2020-05-24"},{"lineNumber":15,"author":{"gitId":"-"},"content":" \u003e Task :processResources NO-SOURCE","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":" \u003e Task :classes","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":" \u003e Task :Duke.main()","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"woodenclock"},"content":" Hello there! Welcome to Wild Watch!","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":" What is your name?","lastModifiedDate":"2020-05-24"},{"lineNumber":21,"author":{"gitId":"-"},"content":" ```","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" Type some word and press enter to let the execution proceed to the end.","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":24,"author":{"gitId":"-"},"content":"## Build automation using Gradle","lastModifiedDate":"2020-05-24"},{"lineNumber":25,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":26,"author":{"gitId":"-"},"content":"* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file).","lastModifiedDate":"2020-05-24"},{"lineNumber":27,"author":{"gitId":"-"},"content":"* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":28,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":29,"author":{"gitId":"-"},"content":"## Testing","lastModifiedDate":"2020-05-24"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":31,"author":{"gitId":"-"},"content":"### I/O redirection tests","lastModifiedDate":"2020-05-24"},{"lineNumber":32,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":33,"author":{"gitId":"-"},"content":"* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script.","lastModifiedDate":"2020-05-24"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":35,"author":{"gitId":"-"},"content":"### JUnit tests","lastModifiedDate":"2020-05-24"},{"lineNumber":36,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":37,"author":{"gitId":"-"},"content":"* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. ","lastModifiedDate":"2020-05-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":40,"author":{"gitId":"-"},"content":"## Checkstyle","lastModifiedDate":"2020-05-24"},{"lineNumber":41,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":42,"author":{"gitId":"-"},"content":"* A sample CheckStyle rule configuration is provided in this project.","lastModifiedDate":"2020-05-24"},{"lineNumber":43,"author":{"gitId":"-"},"content":"* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html).","lastModifiedDate":"2020-05-24"},{"lineNumber":44,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":45,"author":{"gitId":"-"},"content":"## CI using GitHub Actions","lastModifiedDate":"2020-05-24"},{"lineNumber":46,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":47,"author":{"gitId":"-"},"content":"The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.","lastModifiedDate":"2020-05-24"},{"lineNumber":48,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":49,"author":{"gitId":"-"},"content":"## Documentation","lastModifiedDate":"2020-05-24"},{"lineNumber":50,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":51,"author":{"gitId":"-"},"content":"`/docs` folder contains a skeleton version of the project documentation.","lastModifiedDate":"2020-05-24"},{"lineNumber":52,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":53,"author":{"gitId":"-"},"content":"Steps for publishing documentation to the public: ","lastModifiedDate":"2020-05-24"},{"lineNumber":54,"author":{"gitId":"-"},"content":"1. If you are using this project template for an individual project, go your fork on GitHub.\u003cbr\u003e","lastModifiedDate":"2020-05-24"},{"lineNumber":55,"author":{"gitId":"-"},"content":" If you are using this project template for a team project, go to the team fork on GitHub.","lastModifiedDate":"2020-05-24"},{"lineNumber":56,"author":{"gitId":"-"},"content":"1. Click on the `settings` tab.","lastModifiedDate":"2020-05-24"},{"lineNumber":57,"author":{"gitId":"-"},"content":"1. Scroll down to the `GitHub Pages` section.","lastModifiedDate":"2020-05-24"},{"lineNumber":58,"author":{"gitId":"-"},"content":"1. Set the `source` as `master branch /docs folder`.","lastModifiedDate":"2020-05-24"},{"lineNumber":59,"author":{"gitId":"-"},"content":"1. Optionally, use the `choose a theme` button to choose a theme for your documentation.","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"woodenclock":3,"-":56}},{"path":"build.gradle","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"plugins {","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":" id \u0027java\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":" id \u0027application\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":4,"author":{"gitId":"-"},"content":" id \u0027checkstyle\u0027","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":" id \u0027com.github.johnrengelman.shadow\u0027 version \u00277.1.2\u0027","lastModifiedDate":"2022-06-17"},{"lineNumber":6,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"repositories {","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":" mavenCentral()","lastModifiedDate":"2020-05-25"},{"lineNumber":10,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":12,"author":{"gitId":"-"},"content":"dependencies {","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":" testImplementation group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-api\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":14,"author":{"gitId":"-"},"content":" testRuntimeOnly group: \u0027org.junit.jupiter\u0027, name: \u0027junit-jupiter-engine\u0027, version: \u00275.10.0\u0027","lastModifiedDate":"2023-08-05"},{"lineNumber":15,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":17,"author":{"gitId":"-"},"content":"test {","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":" useJUnitPlatform()","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":20,"author":{"gitId":"-"},"content":" testLogging {","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":" events \"passed\", \"skipped\", \"failed\"","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":23,"author":{"gitId":"-"},"content":" showExceptions true","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":" exceptionFormat \"full\"","lastModifiedDate":"2020-05-25"},{"lineNumber":25,"author":{"gitId":"-"},"content":" showCauses true","lastModifiedDate":"2020-05-25"},{"lineNumber":26,"author":{"gitId":"-"},"content":" showStackTraces true","lastModifiedDate":"2020-05-25"},{"lineNumber":27,"author":{"gitId":"-"},"content":" showStandardStreams \u003d false","lastModifiedDate":"2020-05-25"},{"lineNumber":28,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-25"},{"lineNumber":29,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":30,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":31,"author":{"gitId":"-"},"content":"application {","lastModifiedDate":"2020-05-25"},{"lineNumber":32,"author":{"gitId":"woodenclock"},"content":" mainClass.set(\"seedu.wildwatch.WildWatch\")","lastModifiedDate":"2023-10-09"},{"lineNumber":33,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":34,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":35,"author":{"gitId":"-"},"content":"shadowJar {","lastModifiedDate":"2020-05-25"},{"lineNumber":36,"author":{"gitId":"woodenclock"},"content":" archiveBaseName.set(\"wildwatch\")","lastModifiedDate":"2023-10-09"},{"lineNumber":37,"author":{"gitId":"-"},"content":" archiveClassifier.set(\"\")","lastModifiedDate":"2023-09-24"},{"lineNumber":38,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":39,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":40,"author":{"gitId":"-"},"content":"checkstyle {","lastModifiedDate":"2020-05-25"},{"lineNumber":41,"author":{"gitId":"-"},"content":" toolVersion \u003d \u002710.2\u0027","lastModifiedDate":"2022-04-29"},{"lineNumber":42,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"},{"lineNumber":43,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":44,"author":{"gitId":"-"},"content":"run{","lastModifiedDate":"2020-05-25"},{"lineNumber":45,"author":{"gitId":"-"},"content":" standardInput \u003d System.in","lastModifiedDate":"2020-05-25"},{"lineNumber":46,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"woodenclock":2,"-":44}},{"path":"docs/AboutUs.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"# About us","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"| Display | Name | Github Profile | Portfolio |","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"|-----------------------------------------------------------------------------------------|:-----------:|:----------------------------------------:|:------------------------------------:|","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"| ![](https://drive.google.com/file/d/1US5foLOzdSY_DOrzFOHrxK43M4V8U7g1/view?usp\u003dsharing) | Lee Sungmin | [Github](https://github.com/woodenclock) | [Portfolio](docs/team/leesungmin.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":"| ![](https://via.placeholder.com/100.png?text\u003dPhoto) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":6,"-":2}},{"path":"docs/team/leesungmin.md","fileType":"docs","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"# Lee Sungmin","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"Hi there! Hope you are doing great!","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":3}},{"path":"src/main/java/seedu/wildwatch/WildWatch.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import seedu.wildwatch.operatingsystem.BootUp;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"import seedu.wildwatch.operation.Parser;","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":"public class WildWatch {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":" /**","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":" * Main entry-point for the java.wildwatch.WildWatch application.","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"-"},"content":" */","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":" public static void main(String[] args) {","lastModifiedDate":"2019-07-29"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":" System.out.println(BootUp.WELCOME_MESSAGE + BootUp.LOGO);","lastModifiedDate":"2023-10-11"},{"lineNumber":13,"author":{"gitId":"woodenclock"},"content":" System.out.println(\"What would you like to do?\");","lastModifiedDate":"2023-10-11"},{"lineNumber":14,"author":{"gitId":"woodenclock"},"content":" Parser.entryHandler();","lastModifiedDate":"2023-10-11"},{"lineNumber":15,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2019-07-29"},{"lineNumber":16,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2019-07-29"}],"authorContributionMap":{"woodenclock":9,"-":7}},{"path":"src/main/java/seedu/wildwatch/entry/Entry.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.entry;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import java.time.LocalDate;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"import java.time.format.DateTimeFormatter;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"public class Entry {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" private LocalDate date;","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":" private String species;","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":" private String remark;","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":" public Entry(String date, String species, String remark) {","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":" DateTimeFormatter inputFormat \u003d DateTimeFormatter.ofPattern(\"dd-MM-yy\");","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"woodenclock"},"content":" this.date \u003d LocalDate.parse(date, inputFormat);","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"woodenclock"},"content":" this.species \u003d species;","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"woodenclock"},"content":" this.remark \u003d remark;","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"woodenclock"},"content":" }","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":17}},{"path":"src/main/java/seedu/wildwatch/operatingsystem/BootUp.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.operatingsystem;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"public class BootUp {","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":" public static final String WELCOME_MESSAGE \u003d","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":" \"Hello there! Welcome to Wild Watch!\\n\";","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":" public static final String LOGO \u003d","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" \"____ __ ____ __ __ _______\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":" \"\\\\ \\\\ / \\\\ / / | | | | | \\\\\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":" \" \\\\ \\\\/ \\\\/ / | | | | | .--. |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":" \" \\\\ / | | | | | | | |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":" \" \\\\ /\\\\ / | | | `----.| \u0027--\u0027 |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":12,"author":{"gitId":"woodenclock"},"content":" \" \\\\__/ \\\\__/ |__| |_______||_______/\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":13,"author":{"gitId":"woodenclock"},"content":" \"\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":14,"author":{"gitId":"woodenclock"},"content":" \"____ __ ____ ___ .___________. ______ __ __\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"woodenclock"},"content":" \"\\\\ \\\\ / \\\\ / / / \\\\ | | / || | | |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":16,"author":{"gitId":"woodenclock"},"content":" \" \\\\ \\\\/ \\\\/ / / ^ \\\\ `---| |----`| ,----\u0027| |__| |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":17,"author":{"gitId":"woodenclock"},"content":" \" \\\\ / / /_\\\\ \\\\ | | | | | __ |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":18,"author":{"gitId":"woodenclock"},"content":" \" \\\\ /\\\\ / / _____ \\\\ | | | `----.| | | |\\n\" +","lastModifiedDate":"2023-10-09"},{"lineNumber":19,"author":{"gitId":"woodenclock"},"content":" \" \\\\__/ \\\\__/ /__/ \\\\__\\\\ |__| \\\\______||__| |__|\";","lastModifiedDate":"2023-10-09"},{"lineNumber":20,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":20}},{"path":"src/main/java/seedu/wildwatch/operation/EntryList.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.operation;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import seedu.wildwatch.entry.Entry;","lastModifiedDate":"2023-10-09"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"import java.util.ArrayList;","lastModifiedDate":"2023-10-09"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":"public class EntryList {","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" private static ArrayList\u003cEntry\u003e tasks \u003d new ArrayList\u003c\u003e(); //Keeps track of all Task Instances made","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-09"}],"authorContributionMap":{"woodenclock":8}},{"path":"src/main/java/seedu/wildwatch/operation/Parser.java","fileType":"functional-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch.operation;","lastModifiedDate":"2023-10-11"},{"lineNumber":2,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":3,"author":{"gitId":"woodenclock"},"content":"import java.util.Scanner;","lastModifiedDate":"2023-10-11"},{"lineNumber":4,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":5,"author":{"gitId":"woodenclock"},"content":"public class Parser {","lastModifiedDate":"2023-10-11"},{"lineNumber":6,"author":{"gitId":"woodenclock"},"content":" public static void entryHandler() {","lastModifiedDate":"2023-10-11"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":" Scanner in \u003d new Scanner(System.in);","lastModifiedDate":"2023-10-11"},{"lineNumber":8,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":9,"author":{"gitId":"woodenclock"},"content":"","lastModifiedDate":"2023-10-11"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":" }","lastModifiedDate":"2023-10-11"},{"lineNumber":11,"author":{"gitId":"woodenclock"},"content":"}","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"woodenclock":11}},{"path":"src/test/java/seedu/wildwatch/WildWatchTest.java","fileType":"test-code","lines":[{"lineNumber":1,"author":{"gitId":"woodenclock"},"content":"package seedu.wildwatch;","lastModifiedDate":"2023-10-09"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"import static org.junit.jupiter.api.Assertions.assertTrue;","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"import org.junit.jupiter.api.Test;","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2023-10-09"},{"lineNumber":7,"author":{"gitId":"woodenclock"},"content":"public class WildWatchTest {","lastModifiedDate":"2023-10-09"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":" @Test","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"woodenclock"},"content":" public void isDateValid() {","lastModifiedDate":"2023-10-09"},{"lineNumber":11,"author":{"gitId":"-"},"content":" assertTrue(true);","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" }","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":"}","lastModifiedDate":"2020-05-24"}],"authorContributionMap":{"woodenclock":3,"-":10}},{"path":"text-ui-test/runtest.bat","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"@echo off","lastModifiedDate":"2020-05-24"},{"lineNumber":2,"author":{"gitId":"-"},"content":"setlocal enableextensions","lastModifiedDate":"2020-05-24"},{"lineNumber":3,"author":{"gitId":"-"},"content":"pushd %~dp0","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":5,"author":{"gitId":"-"},"content":"cd ..","lastModifiedDate":"2020-05-24"},{"lineNumber":6,"author":{"gitId":"-"},"content":"call gradlew clean shadowJar","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":8,"author":{"gitId":"-"},"content":"cd build\\libs","lastModifiedDate":"2020-05-24"},{"lineNumber":9,"author":{"gitId":"-"},"content":"for /f \"tokens\u003d*\" %%a in (","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":" \u0027dir /b *.jar\u0027","lastModifiedDate":"2020-05-24"},{"lineNumber":11,"author":{"gitId":"-"},"content":") do (","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":" set jarloc\u003d%%a","lastModifiedDate":"2020-05-24"},{"lineNumber":13,"author":{"gitId":"-"},"content":")","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":15,"author":{"gitId":"-"},"content":"java -jar %jarloc% \u003c ..\\..\\text-ui-test\\input.txt \u003e ..\\..\\text-ui-test\\ACTUAL.TXT","lastModifiedDate":"2020-05-24"},{"lineNumber":16,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-24"},{"lineNumber":17,"author":{"gitId":"-"},"content":"cd ..\\..\\text-ui-test","lastModifiedDate":"2020-05-24"},{"lineNumber":18,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"woodenclock"},"content":"FC ACTUAL.TXT EXPECTED.TXT \u0026\u0026 ECHO Test passed! || Echo Test failed!","lastModifiedDate":"2023-10-11"}],"authorContributionMap":{"woodenclock":1,"-":18}},{"path":"text-ui-test/runtest.sh","fileType":"other","lines":[{"lineNumber":1,"author":{"gitId":"-"},"content":"#!/usr/bin/env bash","lastModifiedDate":"2020-05-25"},{"lineNumber":2,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":3,"author":{"gitId":"-"},"content":"# change to script directory","lastModifiedDate":"2020-05-24"},{"lineNumber":4,"author":{"gitId":"-"},"content":"cd \"${0%/*}\"","lastModifiedDate":"2020-05-24"},{"lineNumber":5,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":6,"author":{"gitId":"-"},"content":"cd ..","lastModifiedDate":"2020-05-24"},{"lineNumber":7,"author":{"gitId":"-"},"content":"./gradlew clean shadowJar","lastModifiedDate":"2020-05-24"},{"lineNumber":8,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":9,"author":{"gitId":"-"},"content":"cd text-ui-test","lastModifiedDate":"2020-05-24"},{"lineNumber":10,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":11,"author":{"gitId":"-"},"content":"java -jar $(find ../build/libs/ -mindepth 1 -print -quit) \u003c input.txt \u003e ACTUAL.TXT","lastModifiedDate":"2020-05-24"},{"lineNumber":12,"author":{"gitId":"-"},"content":"","lastModifiedDate":"2020-05-25"},{"lineNumber":13,"author":{"gitId":"-"},"content":"cp EXPECTED.TXT EXPECTED-UNIX.TXT","lastModifiedDate":"2020-05-25"},{"lineNumber":14,"author":{"gitId":"-"},"content":"dos2unix EXPECTED-UNIX.TXT ACTUAL.TXT","lastModifiedDate":"2023-10-09"},{"lineNumber":15,"author":{"gitId":"woodenclock"},"content":"# diff EXPECTED-UNIX.TXT ACTUAL.TXT","lastModifiedDate":"2023-10-11"},{"lineNumber":16,"author":{"gitId":"woodenclock"},"content":"diff ACTUAL.TXT ACTUAL.TXT","lastModifiedDate":"2023-10-11"},{"lineNumber":17,"author":{"gitId":"-"},"content":"if [ $? -eq 0 ]","lastModifiedDate":"2020-05-25"},{"lineNumber":18,"author":{"gitId":"-"},"content":"then","lastModifiedDate":"2020-05-25"},{"lineNumber":19,"author":{"gitId":"-"},"content":" echo \"Test passed!\"","lastModifiedDate":"2020-05-24"},{"lineNumber":20,"author":{"gitId":"-"},"content":" exit 0","lastModifiedDate":"2020-05-25"},{"lineNumber":21,"author":{"gitId":"-"},"content":"else","lastModifiedDate":"2020-05-25"},{"lineNumber":22,"author":{"gitId":"-"},"content":" echo \"Test failed!\"","lastModifiedDate":"2020-05-24"},{"lineNumber":23,"author":{"gitId":"-"},"content":" exit 1","lastModifiedDate":"2020-05-25"},{"lineNumber":24,"author":{"gitId":"-"},"content":"fi","lastModifiedDate":"2020-05-25"}],"authorContributionMap":{"woodenclock":2,"-":22}}] diff --git a/AY2324S1-CS2113T-W11-2_tp_master/commits.json b/AY2324S1-CS2113T-W11-2_tp_master/commits.json index 74a3274..9489bda 100644 --- a/AY2324S1-CS2113T-W11-2_tp_master/commits.json +++ b/AY2324S1-CS2113T-W11-2_tp_master/commits.json @@ -1 +1 @@ -{"authorDailyContributionsMap":{"imaginarys96":[],"woodenclock":[{"date":"2023-10-04","commitResults":[{"hash":"773a8e43cb56142c5789ca6965e4db2986c5c57f","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":0}}}]},{"date":"2023-10-09","commitResults":[{"hash":"6077ba4a23bd1b9fc1e50fa53e3b872be5b6eb1e","isMergeCommit":false,"messageTitle":"Create AboutUs branch and leesungmin.md portfolio","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":9,"deletions":7}}},{"hash":"a37fa65ccb6a1b62dfab0eb6f3457341f6d818fc","isMergeCommit":false,"messageTitle":"Update READ.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":2}}},{"hash":"c2fcafd4f8451047de38b018df37b1fe9c6f480a","isMergeCommit":true,"messageTitle":"Merge pull request #1 from woodenclock/LeeSungmin-AboutUs","messageBody":"Create AboutUs branch and leesungmin.md portfolio","fileTypesAndContributionMap":{}},{"hash":"3e9aca38ae0e03fd4a8ae621146d083c45409027","isMergeCommit":true,"messageTitle":"Merge branch \u0027LeeSungmin-AboutUs\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2d4101597f24823b23a9a5ef502aef5397288f1c","isMergeCommit":false,"messageTitle":"Rename Duke.java to WildWatch.java as per out project name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"1abb04b6249ec7daf5a386a21773f3ddb077ac18","isMergeCommit":false,"messageTitle":"Revert \"Rename Duke.java to WildWatch.java as per out project name\"","messageBody":"This reverts commit 2d4101597f24823b23a9a5ef502aef5397288f1c.\n","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"244abfa479dd4619a399297ac397592315e08604","isMergeCommit":false,"messageTitle":"Create abstract class Animal","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":18,"deletions":0}}},{"hash":"7663b3ecf3a8aa8aa508d8ca7edad59130e9c0eb","isMergeCommit":false,"messageTitle":"Rename project as WildWatch as per our project name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":6,"deletions":6}}},{"hash":"b2e6806dddd0bf67b32c68655dd5236c7e9cc544","isMergeCommit":true,"messageTitle":"Merge pull request #4 from woodenclock/rename_project","messageBody":"Rename project from Duke to WildWatch as per our project name","fileTypesAndContributionMap":{}},{"hash":"c6242a7063a64aa4bb36350d575a875c50229edc","isMergeCommit":true,"messageTitle":"Merge branch \u0027rename_project\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a64a4c0cab96655ea728b5ac0f2f60751c8ed5a1","isMergeCommit":false,"messageTitle":"Create BootUp.java that contains welcome logo","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":77,"deletions":0}}},{"hash":"1f3d3b8c4fc84585d1699c43d127d4a36da01587","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":114,"deletions":76}}},{"hash":"fe6e136acc5d593d19301effc6cc5f2641e1947e","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":8}}},{"hash":"6c2cafbaba2f9bb015357d95eff4dfaa5f5c4a69","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":40,"deletions":21}}},{"hash":"6cf1720e89934b3c61ab1c0d8db3a7e239eacd36","isMergeCommit":false,"messageTitle":"Update runtest.sh","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"b348ea5c36874f96a6b46c30290db939136d88fc","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"c4fb3ba9f397df9c3454cadc898b8829dd8553db","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"32d40d3e7e7046ccc3c3e596dc7c5b0b68073947","isMergeCommit":false,"messageTitle":"Update runtest.sh","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"bfd809b962a596b58a7fc24c27f6b244735c571b","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"936492bd4e993987c0bd1fcae321f3493ab4b91e","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"429d316db795b18efa841f79d94336cea4f40331","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"fd7bfa9b414fe7ee9bfb841d84703aaf82e6ce7c","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":52,"deletions":133},"other":{"insertions":1,"deletions":1}}},{"hash":"97689efd86b84f8ee0b3497014aea9426286baaa","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into bootup","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"ac3e8877e92b18280e3cd70bdadaf9310f81dff7","isMergeCommit":true,"messageTitle":"Merge pull request #6 from woodenclock/bootup","messageBody":"Update BootUp.java to fit within 120 wordline limit","fileTypesAndContributionMap":{}},{"hash":"c06e04b29d428439ccf8b280bd26d5482c96c8d3","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"31c6d46df982c3a0688f29f473887f21dc3ba1db","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":51}}},{"hash":"c6dff4fe86a6f3264235eadf60d8443e5e8f6a19","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"98d77c185330d024cf1a480c1d16eb5413f0f497","isMergeCommit":true,"messageTitle":"Merge branch \u0027bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"95b5f9b53ffbc9c55aa75f230a8746872f8bee4c","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/bootup\u0027 into bootup","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"9f4548643bc946e1e5906276338a280796b2cef9","isMergeCommit":false,"messageTitle":"Update project structure","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":27,"deletions":39}}},{"hash":"e5a87bbe89f4a01b708f0f3327d195415909489c","isMergeCommit":true,"messageTitle":"Merge branch \u0027bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"987dc591619e7c1b4cd557c06e21f6a68d607a4a","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"a5c52684a404e5205c5674689e949f782d79811c","isMergeCommit":false,"messageTitle":"Update BootUp.java to conform to coding quality","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"1f17fcaa275038ea365d6759055ab33f6c31e9aa","isMergeCommit":true,"messageTitle":"Merge pull request #12 from woodenclock/bootup","messageBody":"Update project structure","fileTypesAndContributionMap":{}},{"hash":"7145784bb155b969e48ff7e7010ea4c97c2aae75","isMergeCommit":false,"messageTitle":"Create Entry class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":2}}},{"hash":"96ac3b11547e3b2d2d4c6e14bdf22fd36aa76bba","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into entry","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5dac1732ee34244d4e59bf099e9261501710087d","isMergeCommit":true,"messageTitle":"Merge pull request #13 from woodenclock/entry","messageBody":"Create Entry class","fileTypesAndContributionMap":{}},{"hash":"945347d04572d7a9a11413580262329c992f14a5","isMergeCommit":false,"messageTitle":"Update WildWatchTest.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":2},"test-code":{"insertions":4,"deletions":2}}},{"hash":"3b7a601cd1b53fc7be7a2d1bedc42310cf1649e1","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into test","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"be05363bad21706e61fab277cea8f999e2782b07","isMergeCommit":false,"messageTitle":"Update WildWatchTest.java","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":0,"deletions":1}}},{"hash":"2e019b43aa866ada15a4ed25cd3d7885ac10cc4a","isMergeCommit":false,"messageTitle":"Create EntryList class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":0}}},{"hash":"6d3073813fb40e7d90e3ab589849963683e1189a","isMergeCommit":true,"messageTitle":"Merge pull request #14 from woodenclock/test","messageBody":"Update WildWatchTest.java","fileTypesAndContributionMap":{}},{"hash":"f774cc61af7a812a27a5b8886299f5f7b1f8868d","isMergeCommit":true,"messageTitle":"Merge pull request #15 from woodenclock/entry-list","messageBody":"Create EntryList class","fileTypesAndContributionMap":{}}]}],"tangzhenen":[],"lctxct":[]},"authorFileTypeContributionMap":{"imaginarys96":{"docs":0,"functional-code":0,"test-code":0},"woodenclock":{"docs":10,"functional-code":50,"test-code":3,"other":3},"tangzhenen":{"docs":0,"functional-code":0,"test-code":0},"lctxct":{"docs":0,"functional-code":0,"test-code":0}},"authorContributionVariance":{"imaginarys96":0.0,"woodenclock":31917.459,"tangzhenen":0.0,"lctxct":0.0},"authorDisplayNameMap":{"imaginarys96":"CS2113T-W11-2 YANG..REMY","woodenclock":"CS2113T-W11-2 LEE ..GMIN","tangzhenen":"CS2113T-W11-2 TANG..N EN","lctxct":"CS2113T-W11-2 LIEN..TING"}} +{"authorDailyContributionsMap":{"imaginarys96":[],"woodenclock":[{"date":"2023-10-04","commitResults":[{"hash":"773a8e43cb56142c5789ca6965e4db2986c5c57f","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":0}}}]},{"date":"2023-10-09","commitResults":[{"hash":"6077ba4a23bd1b9fc1e50fa53e3b872be5b6eb1e","isMergeCommit":false,"messageTitle":"Create AboutUs branch and leesungmin.md portfolio","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":9,"deletions":7}}},{"hash":"a37fa65ccb6a1b62dfab0eb6f3457341f6d818fc","isMergeCommit":false,"messageTitle":"Update READ.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":1,"deletions":2}}},{"hash":"c2fcafd4f8451047de38b018df37b1fe9c6f480a","isMergeCommit":true,"messageTitle":"Merge pull request #1 from woodenclock/LeeSungmin-AboutUs","messageBody":"Create AboutUs branch and leesungmin.md portfolio","fileTypesAndContributionMap":{}},{"hash":"3e9aca38ae0e03fd4a8ae621146d083c45409027","isMergeCommit":true,"messageTitle":"Merge branch \u0027LeeSungmin-AboutUs\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"2d4101597f24823b23a9a5ef502aef5397288f1c","isMergeCommit":false,"messageTitle":"Rename Duke.java to WildWatch.java as per out project name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"1abb04b6249ec7daf5a386a21773f3ddb077ac18","isMergeCommit":false,"messageTitle":"Revert \"Rename Duke.java to WildWatch.java as per out project name\"","messageBody":"This reverts commit 2d4101597f24823b23a9a5ef502aef5397288f1c.\n","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"244abfa479dd4619a399297ac397592315e08604","isMergeCommit":false,"messageTitle":"Create abstract class Animal","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":18,"deletions":0}}},{"hash":"7663b3ecf3a8aa8aa508d8ca7edad59130e9c0eb","isMergeCommit":false,"messageTitle":"Rename project as WildWatch as per our project name","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":6,"deletions":6}}},{"hash":"b2e6806dddd0bf67b32c68655dd5236c7e9cc544","isMergeCommit":true,"messageTitle":"Merge pull request #4 from woodenclock/rename_project","messageBody":"Rename project from Duke to WildWatch as per our project name","fileTypesAndContributionMap":{}},{"hash":"c6242a7063a64aa4bb36350d575a875c50229edc","isMergeCommit":true,"messageTitle":"Merge branch \u0027rename_project\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"a64a4c0cab96655ea728b5ac0f2f60751c8ed5a1","isMergeCommit":false,"messageTitle":"Create BootUp.java that contains welcome logo","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":77,"deletions":0}}},{"hash":"1f3d3b8c4fc84585d1699c43d127d4a36da01587","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":114,"deletions":76}}},{"hash":"fe6e136acc5d593d19301effc6cc5f2641e1947e","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":8}}},{"hash":"6c2cafbaba2f9bb015357d95eff4dfaa5f5c4a69","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":40,"deletions":21}}},{"hash":"6cf1720e89934b3c61ab1c0d8db3a7e239eacd36","isMergeCommit":false,"messageTitle":"Update runtest.sh","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"b348ea5c36874f96a6b46c30290db939136d88fc","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"c4fb3ba9f397df9c3454cadc898b8829dd8553db","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"32d40d3e7e7046ccc3c3e596dc7c5b0b68073947","isMergeCommit":false,"messageTitle":"Update runtest.sh","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"bfd809b962a596b58a7fc24c27f6b244735c571b","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"936492bd4e993987c0bd1fcae321f3493ab4b91e","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"429d316db795b18efa841f79d94336cea4f40331","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"fd7bfa9b414fe7ee9bfb841d84703aaf82e6ce7c","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":52,"deletions":133},"other":{"insertions":1,"deletions":1}}},{"hash":"97689efd86b84f8ee0b3497014aea9426286baaa","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into bootup","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"ac3e8877e92b18280e3cd70bdadaf9310f81dff7","isMergeCommit":true,"messageTitle":"Merge pull request #6 from woodenclock/bootup","messageBody":"Update BootUp.java to fit within 120 wordline limit","fileTypesAndContributionMap":{}},{"hash":"c06e04b29d428439ccf8b280bd26d5482c96c8d3","isMergeCommit":false,"messageTitle":"Update runtest.bat","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":1,"deletions":1}}},{"hash":"31c6d46df982c3a0688f29f473887f21dc3ba1db","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":51}}},{"hash":"c6dff4fe86a6f3264235eadf60d8443e5e8f6a19","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"98d77c185330d024cf1a480c1d16eb5413f0f497","isMergeCommit":true,"messageTitle":"Merge branch \u0027bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"95b5f9b53ffbc9c55aa75f230a8746872f8bee4c","isMergeCommit":true,"messageTitle":"Merge remote-tracking branch \u0027origin/bootup\u0027 into bootup","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"9f4548643bc946e1e5906276338a280796b2cef9","isMergeCommit":false,"messageTitle":"Update project structure","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":27,"deletions":39}}},{"hash":"e5a87bbe89f4a01b708f0f3327d195415909489c","isMergeCommit":true,"messageTitle":"Merge branch \u0027bootup\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"987dc591619e7c1b4cd557c06e21f6a68d607a4a","isMergeCommit":false,"messageTitle":"Update BootUp.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"a5c52684a404e5205c5674689e949f782d79811c","isMergeCommit":false,"messageTitle":"Update BootUp.java to conform to coding quality","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"1f17fcaa275038ea365d6759055ab33f6c31e9aa","isMergeCommit":true,"messageTitle":"Merge pull request #12 from woodenclock/bootup","messageBody":"Update project structure","fileTypesAndContributionMap":{}},{"hash":"7145784bb155b969e48ff7e7010ea4c97c2aae75","isMergeCommit":false,"messageTitle":"Create Entry class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":2}}},{"hash":"f03352d7d7f269e18a0591384ba5a3c7cc4eb55a","isMergeCommit":false,"messageTitle":"Update README.md","messageBody":"","fileTypesAndContributionMap":{"docs":{"insertions":3,"deletions":8}}},{"hash":"96ac3b11547e3b2d2d4c6e14bdf22fd36aa76bba","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into entry","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"5dac1732ee34244d4e59bf099e9261501710087d","isMergeCommit":true,"messageTitle":"Merge pull request #13 from woodenclock/entry","messageBody":"Create Entry class","fileTypesAndContributionMap":{}},{"hash":"945347d04572d7a9a11413580262329c992f14a5","isMergeCommit":false,"messageTitle":"Update WildWatchTest.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":2},"test-code":{"insertions":4,"deletions":2}}},{"hash":"3b7a601cd1b53fc7be7a2d1bedc42310cf1649e1","isMergeCommit":true,"messageTitle":"Merge branch \u0027master\u0027 into test","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"be05363bad21706e61fab277cea8f999e2782b07","isMergeCommit":false,"messageTitle":"Update WildWatchTest.java","messageBody":"","fileTypesAndContributionMap":{"test-code":{"insertions":0,"deletions":1}}},{"hash":"2e019b43aa866ada15a4ed25cd3d7885ac10cc4a","isMergeCommit":false,"messageTitle":"Create EntryList class","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":8,"deletions":0}}},{"hash":"6d3073813fb40e7d90e3ab589849963683e1189a","isMergeCommit":true,"messageTitle":"Merge pull request #14 from woodenclock/test","messageBody":"Update WildWatchTest.java","fileTypesAndContributionMap":{}},{"hash":"f774cc61af7a812a27a5b8886299f5f7b1f8868d","isMergeCommit":true,"messageTitle":"Merge pull request #15 from woodenclock/entry-list","messageBody":"Create EntryList class","fileTypesAndContributionMap":{}}]},{"date":"2023-10-11","commitResults":[{"hash":"fb23536d544f38c73460e96a5c8bd313abdf0871","isMergeCommit":false,"messageTitle":"Update Main.java","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"38254679c1a734c325e5dab8dcf333beef508b93","isMergeCommit":false,"messageTitle":"Update Entry","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":14,"deletions":4}}},{"hash":"a3e6c2fd82eac65ab404abed9a60af89969b3303","isMergeCommit":true,"messageTitle":"Merge branch \u0027test\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"1bade08d80d0e3eedb5160168e9cb74b4927402d","isMergeCommit":true,"messageTitle":"Merge branch \u0027entry-list\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"d0e3391ae33de9f5e0a565830ac98df6cc4f313f","isMergeCommit":true,"messageTitle":"Merge branch \u0027entry\u0027","messageBody":"","fileTypesAndContributionMap":{}},{"hash":"4ee7626d1bc4413bf1ddef578903135c52b31969","isMergeCommit":false,"messageTitle":"Update runtest.sh","messageBody":"","fileTypesAndContributionMap":{"other":{"insertions":2,"deletions":1}}},{"hash":"9e1e349dc0473c94c82979f9b4205f2c7a5a2a0f","isMergeCommit":true,"messageTitle":"Merge pull request #17 from woodenclock/master","messageBody":"Update Main.java","fileTypesAndContributionMap":{}},{"hash":"641b2c736ec355c3848f2cbcbb041dc8338c9f26","isMergeCommit":false,"messageTitle":"Update Main.java to show welcome logo","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":1,"deletions":1}}},{"hash":"77fe5541e59e37f74e72d91231d710d0ed696be1","isMergeCommit":false,"messageTitle":"Update Welcome Logo","messageBody":"","fileTypesAndContributionMap":{"functional-code":{"insertions":13,"deletions":13},"other":{"insertions":1,"deletions":1}}},{"hash":"6ea49076bd57c39603afcf927bf16466cdace61a","isMergeCommit":true,"messageTitle":"Merge pull request #18 from woodenclock/master","messageBody":"Update Main.java to show welcome logo","fileTypesAndContributionMap":{}}]}],"tangzhenen":[],"lctxct":[]},"authorFileTypeContributionMap":{"imaginarys96":{"docs":0,"functional-code":0,"test-code":0},"woodenclock":{"docs":12,"functional-code":65,"test-code":3,"other":5},"tangzhenen":{"docs":0,"functional-code":0,"test-code":0},"lctxct":{"docs":0,"functional-code":0,"test-code":0}},"authorContributionVariance":{"imaginarys96":0.0,"woodenclock":29639.488,"tangzhenen":0.0,"lctxct":0.0},"authorDisplayNameMap":{"imaginarys96":"CS2113T-W11-2 YANG..REMY","woodenclock":"CS2113T-W11-2 LEE ..GMIN","tangzhenen":"CS2113T-W11-2 TANG..N EN","lctxct":"CS2113T-W11-2 LIEN..TING"}} diff --git a/archive.zip b/archive.zip index 5214957..e6a2c80 100644 Binary files a/archive.zip and b/archive.zip differ diff --git a/js/index.js b/js/index.js index 3257568..feb0830 100644 --- a/js/index.js +++ b/js/index.js @@ -20,6 +20,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=ts": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=ts ***! + \**************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ \"./node_modules/core-js/modules/es.date.to-string.js\");\n/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _mixin_brokenLinkMixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../mixin/brokenLinkMixin */ \"./src/mixin/brokenLinkMixin.ts\");\n/* harmony import */ var _utils_user__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/user */ \"./src/utils/user.ts\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_7__.defineComponent)({\n name: 'c-ramp',\n mixins: [_mixin_brokenLinkMixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"]],\n props: {\n groupby: {\n type: String,\n \"default\": 'groupByRepos'\n },\n user: {\n type: _utils_user__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n required: true\n },\n tframe: {\n type: String,\n \"default\": 'commit'\n },\n avgsize: {\n type: [Number, String],\n required: true\n },\n sdate: {\n type: String,\n required: true\n },\n udate: {\n type: String,\n required: true\n },\n mergegroup: {\n type: Boolean,\n \"default\": false\n },\n fromramp: {\n type: Boolean,\n \"default\": false\n },\n filtersearch: {\n type: String,\n \"default\": ''\n },\n isWidgetMode: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n rampSize: 0.01\n };\n },\n computed: {\n mergeCommitRampSize: function mergeCommitRampSize() {\n return this.rampSize * 20;\n },\n deletesContributionRampSize: function deletesContributionRampSize() {\n return this.rampSize * 20;\n }\n },\n methods: {\n getLink: function getLink(commit) {\n return window.getCommitLink(commit.repoId, commit.hash);\n },\n getContributions: function getContributions(commit) {\n return commit.insertions + commit.deletions;\n },\n isDeletesContribution: function isDeletesContribution(commit) {\n return commit.insertions === 0 && commit.deletions > 0;\n },\n getWidth: function getWidth(slice) {\n // Check if slice contains 'isMergeCommit' attribute\n if ('isMergeCommit' in slice && slice.isMergeCommit) {\n return this.mergeCommitRampSize;\n }\n if (this.getContributions(slice) === 0) {\n return 0;\n }\n if (this.isDeletesContribution(slice)) {\n return this.deletesContributionRampSize;\n }\n // '+' unary operator here attempts to convert this.avgsize to number, if it is not already one\n var newSize = 100 * (slice.insertions / +this.avgsize);\n return Math.max(newSize * this.rampSize, 0.5);\n },\n getContributionMessageByCommit: function getContributionMessageByCommit(slice, commit) {\n return \"[\".concat(slice.date, \"] \").concat(commit.messageTitle, \": +\").concat(commit.insertions, \" -\").concat(commit.deletions, \" lines \");\n },\n getContributionMessage: function getContributionMessage(slice) {\n var title = this.tframe === 'day' ? \"[\".concat(slice.date, \"] Daily \") : \"[\".concat(slice.date, \" till \").concat(slice.endDate, \"] Weekly \");\n title += \"contribution: +\".concat(slice.insertions, \" -\").concat(slice.deletions, \" lines\");\n return title;\n },\n openTabZoom: function openTabZoom(user, slice, evt) {\n // prevent opening of zoom tab when cmd/ctrl click\n if (window.isMacintosh ? evt.metaKey : evt.ctrlKey) {\n return;\n }\n var zoomUser = (0,_home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, user);\n // Type cast here is unsafe\n zoomUser.commits = user.dailyCommits;\n var info = {\n zRepo: user.repoName,\n zAuthor: user.name,\n zFilterGroup: this.groupby,\n zTimeFrame: 'commit',\n zAvgCommitSize: slice.insertions,\n zUser: zoomUser,\n zLocation: window.getRepoLink(user.repoId),\n zSince: slice.date,\n zUntil: this.tframe === 'day' ? slice.date : slice.endDate,\n zIsMerged: this.mergegroup,\n zFromRamp: true,\n zFilterSearch: this.filtersearch\n };\n window.deactivateAllOverlays();\n this.$store.commit('updateTabZoomInfo', info);\n },\n // position for commit granularity\n getCommitPos: function getCommitPos(i, total) {\n return (total - i - 1) * window.DAY_IN_MS / total / (this.getTotalForPos(this.sdate, this.udate) + window.DAY_IN_MS);\n },\n // position for day granularity\n getSlicePos: function getSlicePos(date) {\n var total = this.getTotalForPos(this.sdate, this.udate);\n return (new Date(this.udate).valueOf() - new Date(date).valueOf()) / (total + window.DAY_IN_MS);\n },\n // get duration in miliseconds between 2 date\n getTotalForPos: function getTotalForPos(sinceDate, untilDate) {\n return new Date(untilDate).valueOf() - new Date(sinceDate).valueOf();\n },\n getRampColor: function getRampColor(commit, slice) {\n if (this.isDeletesContribution(commit)) {\n return '-deletes';\n }\n return this.getSliceColor(slice);\n },\n getSliceColor: function getSliceColor(slice) {\n if (this.isDeletesContribution(slice)) {\n return '-deletes';\n }\n var timeMs = this.fromramp ? new Date(this.sdate).getTime() : new Date(slice.date).getTime();\n return timeMs / window.DAY_IN_MS % 5;\n },\n // Prevent browser from switching to new tab when clicking ramp\n rampClick: function rampClick(evt) {\n var isKeyPressed = window.isMacintosh ? evt.metaKey : evt.ctrlKey;\n if (isKeyPressed) {\n evt.preventDefault();\n }\n },\n getReportLink: function getReportLink() {\n if (this.isWidgetMode) {\n var url = window.location.href;\n var regexToRemoveWidget = /([?&])((chartIndex|chartGroupIndex)=\\d+)/g;\n return url.replace(regexToRemoveWidget, '');\n }\n return undefined;\n }\n }\n}));\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-resizer.vue?vue&type=script&lang=ts": /*!*****************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-resizer.vue?vue&type=script&lang=ts ***! @@ -130,6 +141,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _withScopeId = function _withScopeId(n) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-0b6fff4c\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n;\n};\nvar _hoisted_1 = {\n \"class\": \"ramp\"\n};\nvar _hoisted_2 = [\"href\", \"title\"];\nvar _hoisted_3 = [\"href\"];\nvar _hoisted_4 = [\"title\", \"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [_ctx.tframe === 'commit' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(_ctx.user.commits, function (slice, j) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(slice.commitResults, function (commit, k) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n \"class\": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"ramp__slice\", \"ramp__slice--color\".concat(_ctx.getRampColor(commit, slice)), !_ctx.isBrokenLink(_ctx.getLink(commit)) ? '' : 'broken-link']),\n draggable: \"false\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n function () {\n return _ctx.rampClick && _ctx.rampClick.apply(_ctx, arguments);\n }),\n href: _ctx.getLink(commit),\n target: \"_blank\",\n title: _ctx.getContributionMessageByCommit(slice, commit),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)({\n zIndex: _ctx.user.commits.length - j,\n borderLeftWidth: \"\".concat(_ctx.getWidth(commit), \"em\"),\n right: \"\".concat((_ctx.getSlicePos(slice.date) + _ctx.getCommitPos(k, slice.commitResults.length)) * 100, \"%\")\n })\n }, null, 14 /* CLASS, STYLE, PROPS */, _hoisted_2);\n }), 256 /* UNKEYED_FRAGMENT */))], 64 /* STABLE_FRAGMENT */);\n }), 256 /* UNKEYED_FRAGMENT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 1,\n href: _ctx.getReportLink(),\n target: \"_blank\"\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(_ctx.user.commits, function (slice, j) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n \"class\": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"ramp__slice\", \"ramp__slice--color\".concat(_ctx.getSliceColor(slice))]),\n draggable: \"false\",\n title: _ctx.getContributionMessage(slice),\n onClick: function onClick($event) {\n return _ctx.openTabZoom(_ctx.user, slice, $event);\n },\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)({\n zIndex: _ctx.user.commits.length - j,\n borderLeftWidth: \"\".concat(_ctx.getWidth(slice), \"em\"),\n right: \"\".concat(_ctx.getSlicePos(_ctx.tframe === 'day' ? slice.date : slice.endDate) * 100, \"%\")\n })\n }, null, 14 /* CLASS, STYLE, PROPS */, _hoisted_4);\n }), 256 /* UNKEYED_FRAGMENT */))], 8 /* PROPS */, _hoisted_3))]);\n}\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use%5B1%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-resizer.vue?vue&type=template&id=08ec08f4&ts=true&lang=pug": /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-resizer.vue?vue&type=template&id=08ec08f4&ts=true&lang=pug ***! @@ -405,28 +427,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=js": -/*!****************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=js ***! - \****************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js */ \"./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ \"./node_modules/core-js/modules/es.date.to-string.js\");\n/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _mixin_brokenLinkMixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mixin/brokenLinkMixin */ \"./src/mixin/brokenLinkMixin.ts\");\n/* harmony import */ var _utils_user__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/user */ \"./src/utils/user.ts\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n name: 'c-ramp',\n mixins: [_mixin_brokenLinkMixin__WEBPACK_IMPORTED_MODULE_7__[\"default\"]],\n props: {\n groupby: {\n type: String,\n \"default\": 'groupByRepos'\n },\n user: {\n type: _utils_user__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n required: true\n },\n tframe: {\n type: String,\n \"default\": 'commit'\n },\n avgsize: {\n type: [Number, String],\n required: true\n },\n sdate: {\n type: String,\n required: true\n },\n udate: {\n type: String,\n required: true\n },\n mergegroup: {\n type: Boolean,\n \"default\": false\n },\n fromramp: {\n type: Boolean,\n \"default\": false\n },\n filtersearch: {\n type: String,\n \"default\": ''\n },\n isWidgetMode: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n rampSize: 0.01,\n mergeCommitRampSize: this.rampSize * 20,\n deletesContributionRampSize: this.rampSize * 20\n };\n },\n methods: {\n getLink: function getLink(commit) {\n return window.getCommitLink(commit.repoId, commit.hash);\n },\n getContributions: function getContributions(commit) {\n return commit.insertions + commit.deletions;\n },\n isDeletesContribution: function isDeletesContribution(commit) {\n return commit.insertions === 0 && commit.deletions > 0;\n },\n getWidth: function getWidth(slice) {\n if (slice.isMergeCommit) {\n return this.mergeCommitRampSize;\n }\n if (this.getContributions(slice) === 0) {\n return 0;\n }\n if (this.isDeletesContribution(slice)) {\n return this.deletesContributionRampSize;\n }\n var newSize = 100 * (slice.insertions / this.avgsize);\n return Math.max(newSize * this.rampSize, 0.5);\n },\n getContributionMessage: function getContributionMessage(slice, commit) {\n var title = '';\n if (this.tframe === 'commit') {\n return \"[\".concat(slice.date, \"] \").concat(commit.messageTitle, \": +\").concat(commit.insertions, \" -\").concat(commit.deletions, \" lines \");\n }\n title = this.tframe === 'day' ? \"[\".concat(slice.date, \"] Daily \") : \"[\".concat(slice.date, \" till \").concat(slice.endDate, \"] Weekly \");\n title += \"contribution: +\".concat(slice.insertions, \" -\").concat(slice.deletions, \" lines\");\n return title;\n },\n openTabZoom: function openTabZoom(user, slice, evt) {\n // prevent opening of zoom tab when cmd/ctrl click\n if (window.isMacintosh ? evt.metaKey : evt.ctrlKey) {\n return;\n }\n var zoomUser = (0,_home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, user);\n zoomUser.commits = user.dailyCommits;\n var info = {\n zRepo: user.repoName,\n zAuthor: user.name,\n zFilterGroup: this.groupby,\n zTimeFrame: 'commit',\n zAvgCommitSize: slice.insertions,\n zUser: zoomUser,\n zLocation: window.getRepoLink(user.repoId),\n zSince: slice.date,\n zUntil: this.tframe === 'day' ? slice.date : slice.endDate,\n zIsMerged: this.mergegroup,\n zFromRamp: true,\n zFilterSearch: this.filtersearch\n };\n window.deactivateAllOverlays();\n this.$store.commit('updateTabZoomInfo', info);\n },\n // position for commit granularity\n getCommitPos: function getCommitPos(i, total) {\n return (total - i - 1) * window.DAY_IN_MS / total / (this.getTotalForPos(this.sdate, this.udate) + window.DAY_IN_MS);\n },\n // position for day granularity\n getSlicePos: function getSlicePos(date) {\n var total = this.getTotalForPos(this.sdate, this.udate);\n return (new Date(this.udate) - new Date(date)) / (total + window.DAY_IN_MS);\n },\n // get duration in miliseconds between 2 date\n getTotalForPos: function getTotalForPos(sinceDate, untilDate) {\n return new Date(untilDate) - new Date(sinceDate);\n },\n getRampColor: function getRampColor(commit, slice) {\n if (this.isDeletesContribution(commit)) {\n return '-deletes';\n }\n return this.getSliceColor(slice);\n },\n getSliceColor: function getSliceColor(slice) {\n if (this.isDeletesContribution(slice)) {\n return '-deletes';\n }\n var timeMs = this.fromramp ? new Date(this.sdate).getTime() : new Date(slice.date).getTime();\n return timeMs / window.DAY_IN_MS % 5;\n },\n // Prevent browser from switching to new tab when clicking ramp\n rampClick: function rampClick(evt) {\n var isKeyPressed = window.isMacintosh ? evt.metaKey : evt.ctrlKey;\n if (isKeyPressed) {\n evt.preventDefault();\n }\n },\n getReportLink: function getReportLink() {\n if (this.isWidgetMode) {\n var url = window.location.href;\n var regexToRemoveWidget = /([?&])((chartIndex|chartGroupIndex)=\\d+)/g;\n return url.replace(regexToRemoveWidget, '');\n }\n return undefined;\n }\n }\n});\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nvar _withScopeId = function _withScopeId(n) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-0b6fff4c\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n;\n};\nvar _hoisted_1 = {\n \"class\": \"ramp\"\n};\nvar _hoisted_2 = [\"href\", \"title\"];\nvar _hoisted_3 = [\"href\"];\nvar _hoisted_4 = [\"title\", \"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [$props.tframe === 'commit' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.user.commits, function (slice, j) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(slice.commitResults, function (commit, k) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n \"class\": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"ramp__slice\", \"ramp__slice--color\".concat($options.getRampColor(commit, slice)), !_ctx.isBrokenLink($options.getLink(commit)) ? '' : 'broken-link']),\n draggable: \"false\",\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.rampClick && $options.rampClick.apply($options, arguments);\n }),\n href: $options.getLink(commit),\n target: \"_blank\",\n title: $options.getContributionMessage(slice, commit),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)({\n zIndex: $props.user.commits.length - j,\n borderLeftWidth: \"\".concat($options.getWidth(commit), \"em\"),\n right: \"\".concat(($options.getSlicePos(slice.date) + $options.getCommitPos(k, slice.commitResults.length)) * 100, \"%\")\n })\n }, null, 14 /* CLASS, STYLE, PROPS */, _hoisted_2);\n }), 256 /* UNKEYED_FRAGMENT */))], 64 /* STABLE_FRAGMENT */);\n }), 256 /* UNKEYED_FRAGMENT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 1,\n href: $options.getReportLink(),\n target: \"_blank\"\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.user.commits, function (slice, j) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n \"class\": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"ramp__slice\", \"ramp__slice--color\".concat($options.getSliceColor(slice))]),\n draggable: \"false\",\n title: $options.getContributionMessage(slice),\n onClick: function onClick($event) {\n return $options.openTabZoom($props.user, slice, $event);\n },\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)({\n zIndex: $props.user.commits.length - j,\n borderLeftWidth: \"\".concat($options.getWidth(slice), \"em\"),\n right: \"\".concat($options.getSlicePos($props.tframe === 'day' ? slice.date : slice.endDate) * 100, \"%\")\n })\n }, null, 14 /* CLASS, STYLE, PROPS */, _hoisted_4);\n }), 256 /* UNKEYED_FRAGMENT */))], 8 /* PROPS */, _hoisted_3))]);\n}\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B4%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); - -/***/ }), - /***/ "./src/utils/repo-sorter.js": /*!**********************************!*\ !*** ./src/utils/repo-sorter.js ***! @@ -555,7 +555,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug */ \"./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug\");\n/* harmony import */ var _c_ramp_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=script&lang=js */ \"./src/components/c-ramp.vue?vue&type=script&lang=js\");\n/* harmony import */ var _c_ramp_vue_vue_type_style_index_0_id_0b6fff4c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=style&index=0&id=0b6fff4c&scoped=true&lang=scss */ \"./src/components/c-ramp.vue?vue&type=style&index=0&id=0b6fff4c&scoped=true&lang=scss\");\n/* harmony import */ var _home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\nconst __exports__ = /*#__PURE__*/(0,_home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_c_ramp_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-0b6fff4c\"],['__file',\"src/components/c-ramp.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_ts_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug */ \"./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug\");\n/* harmony import */ var _c_ramp_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=script&lang=ts */ \"./src/components/c-ramp.vue?vue&type=script&lang=ts\");\n/* harmony import */ var _c_ramp_vue_vue_type_style_index_0_id_0b6fff4c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./c-ramp.vue?vue&type=style&index=0&id=0b6fff4c&scoped=true&lang=scss */ \"./src/components/c-ramp.vue?vue&type=style&index=0&id=0b6fff4c&scoped=true&lang=scss\");\n/* harmony import */ var _home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\nconst __exports__ = /*#__PURE__*/(0,_home_runner_work_tp_dashboard_tp_dashboard_RepoSense_frontend_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_c_ramp_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_ts_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-0b6fff4c\"],['__file',\"src/components/c-ramp.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); /***/ }), @@ -669,6 +669,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/c-ramp.vue?vue&type=script&lang=ts": +/*!***********************************************************!*\ + !*** ./src/components/c-ramp.vue?vue&type=script&lang=ts ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./c-ramp.vue?vue&type=script&lang=ts */ \"./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=ts\");\n \n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); + +/***/ }), + /***/ "./src/components/c-resizer.vue?vue&type=script&lang=ts": /*!**************************************************************!*\ !*** ./src/components/c-resizer.vue?vue&type=script&lang=ts ***! @@ -779,6 +790,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug": +/*!**********************************************************************************************!*\ + !*** ./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_ts_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_41_use_1_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_ts_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!../../node_modules/pug-plain-loader/index.js!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug */ \"./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&ts=true&lang=pug\");\n\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); + +/***/ }), + /***/ "./src/components/c-resizer.vue?vue&type=template&id=08ec08f4&ts=true&lang=pug": /*!*************************************************************************************!*\ !*** ./src/components/c-resizer.vue?vue&type=template&id=08ec08f4&ts=true&lang=pug ***! @@ -878,28 +900,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), -/***/ "./src/components/c-ramp.vue?vue&type=script&lang=js": -/*!***********************************************************!*\ - !*** ./src/components/c-ramp.vue?vue&type=script&lang=js ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./c-ramp.vue?vue&type=script&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=script&lang=js\");\n \n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); - -/***/ }), - -/***/ "./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug": -/*!**************************************************************************************!*\ - !*** ./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug ***! - \**************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_4_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_c_ramp_vue_vue_type_template_id_0b6fff4c_scoped_true_lang_pug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!../../node_modules/pug-plain-loader/index.js!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/c-ramp.vue?vue&type=template&id=0b6fff4c&scoped=true&lang=pug\");\n\n\n//# sourceURL=webpack://reposense/./src/components/c-ramp.vue?"); - -/***/ }), - /***/ "./src/components/c-segment.vue?vue&type=style&index=0&id=02b52b69&lang=css": /*!**********************************************************************************!*\ !*** ./src/components/c-segment.vue?vue&type=style&index=0&id=02b52b69&lang=css ***! diff --git a/reposense-logs/reposense.log.0 b/reposense-logs/reposense.log.0 index 6c54d72..74525f0 100644 --- a/reposense-logs/reposense.log.0 +++ b/reposense-logs/reposense.log.0 @@ -1,20 +1,20 @@ -Oct 11, 2023 3:04:51 AM reposense.system.LogsManager addFileHandler +Oct 11, 2023 1:40:00 PM reposense.system.LogsManager addFileHandler INFO: Log temp folder has been successfully created -Oct 11, 2023 3:04:51 AM reposense.parser.CsvParser validateHeader +Oct 11, 2023 1:40:00 PM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, repo-config.csv, and recognized columns: Ignore Standalone Config, Repository's Location, Branch, Shallow Cloning, File formats, Ignore Glob List, Ignore Authors List, Find Previous Authors, Ignore Commits List -Oct 11, 2023 3:04:51 AM reposense.parser.CsvParser validateHeader +Oct 11, 2023 1:40:00 PM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, author-config.csv, and recognized columns: Author's Emails, Repository's Location, Author's GitHub ID, Branch, Author's Display Name, Ignore Glob List, Author's Git Author Name -Oct 11, 2023 3:04:51 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 11, 2023 1:40:00 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias choonsiang found. The alias will belong to the last author - ChoonSiang -Oct 11, 2023 3:04:51 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 11, 2023 1:40:00 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias barbaracwx found. The alias will belong to the last author - Barbaracwx -Oct 11, 2023 3:04:51 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 11, 2023 1:40:01 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias choonsiang found. The alias will belong to the last author - ChoonSiang -Oct 11, 2023 3:04:51 AM reposense.model.AuthorConfiguration checkDuplicateAliases +Oct 11, 2023 1:40:01 PM reposense.model.AuthorConfiguration checkDuplicateAliases WARNING: Duplicate alias barbaracwx found. The alias will belong to the last author - Barbaracwx -Oct 11, 2023 3:04:51 AM reposense.parser.CsvParser validateHeader +Oct 11, 2023 1:40:01 PM reposense.parser.CsvParser validateHeader INFO: Parsed header of CSV file, group-config.csv, and recognized columns: Globs, Repository's Location, Group Name -Oct 11, 2023 3:04:51 AM reposense.git.GitConfig getGlobalGitLfsConfig +Oct 11, 2023 1:40:01 PM reposense.git.GitConfig getGlobalGitLfsConfig WARNING: Could not get global git lfs config java.lang.RuntimeException: reposense.system.CommandRunnerProcessException: Error returned from command git config --global --list on path . : fatal: unable to read config file '/home/runner/.gitconfig': No such file or directory @@ -30,313 +30,313 @@ fatal: unable to read config file '/home/runner/.gitconfig': No such file or dir at reposense.system.CommandRunner.runCommand(CommandRunner.java:21) ... 3 more -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-2/tp.git... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-3/tp.git... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-4/tp.git... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-4/tp.git... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-4/tp.git to complete... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-2/tp.git to complete... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git to complete... -Oct 11, 2023 3:04:51 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-4/tp.git to complete... -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git to complete... +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-2/tp.git completed! -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-1/tp.git... -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git to complete... -Oct 11, 2023 3:04:52 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:01 PM reposense.report.ReportGenerator analyzeRepos INFO: [1/17] Analyzing https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:01 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git to complete... +Oct 11, 2023 1:40:01 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-4/tp.git completed! -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-3/tp.git... -Oct 11, 2023 3:04:52 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:02 PM reposense.report.ReportGenerator analyzeRepos INFO: [2/17] Analyzing https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 11, 2023 3:04:52 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:52 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-3/tp.git to complete... -Oct 11, 2023 3:04:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 11, 2023 3:04:52 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:02 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-W12-4/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:52 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:02 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git completed! -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git completed! +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-1/tp.git... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:02 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-1/tp.git to complete... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-3/tp.git completed! -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:02 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... +Oct 11, 2023 1:40:02 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-4/tp.git completed! -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-3/tp.git completed! -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-W12-3/tp.git... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-2/tp.git... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git to complete... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-3/tp.git... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git to complete... -Oct 11, 2023 3:04:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 11, 2023 3:04:53 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-2/tp.git to complete... -Oct 11, 2023 3:04:53 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-2/tp.git (master)... -Oct 11, 2023 3:04:53 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) completed! -Oct 11, 2023 3:04:53 AM reposense.report.ReportGenerator analyzeRepos -INFO: [3/17] Analyzing https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 11, 2023 3:04:53 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:53 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 11, 2023 3:04:53 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:03 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-3/tp.git completed! +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-2/tp.git... +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-2/tp.git (master) completed! +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-2/tp.git to complete... +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator analyzeRepos +INFO: [3/17] Analyzing https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 11, 2023 1:40:03 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-4/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-4/tp.git (master) completed! -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator analyzeRepos INFO: [4/17] Analyzing https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git completed! -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-1/tp.git... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 11, 2023 1:40:03 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:03 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-1/tp.git completed! +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-3/tp.git... +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git to complete... +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-1/tp.git completed! -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-1/tp.git... +Oct 11, 2023 1:40:03 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git to complete... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-W12-3/tp.git completed! +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) completed! +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepos +INFO: [5/17] Analyzing https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T18-4/tp.git... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-2/tp.git completed! -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git completed! -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git to complete... -Oct 11, 2023 3:04:54 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) completed! -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator analyzeRepos -INFO: [5/17] Analyzing https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner spawnCloneProcess +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner spawnCloneProcess INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-1/tp.git... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-2/tp.git... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git to complete... -Oct 11, 2023 3:04:54 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-2/tp.git to complete... -Oct 11, 2023 3:04:54 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:54 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 11, 2023 3:04:54 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-2/tp.git... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-2/tp.git... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git to complete... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner spawnCloneProcess -INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-1/tp.git... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git to complete... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-2/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git to complete... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-4/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-4/tp.git (master) completed! -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [6/17] Analyzing https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-3/tp.git completed! +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-F11-2/tp.git... +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-F11-2/tp.git to complete... +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-3/tp.git (master) completed! -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [7/17] Analyzing https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepos +INFO: [6/17] Analyzing https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) completed! +Oct 11, 2023 1:40:04 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-1/tp.git (master) completed! +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepos +INFO: [7/17] Analyzing https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator analyzeRepos +INFO: [8/17] Analyzing https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... +Oct 11, 2023 1:40:04 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-W12-3/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:04 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-1/tp.git completed! +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-2/tp.git... +Oct 11, 2023 1:40:04 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git to complete... +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-3/tp.git (master) completed! -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepos -INFO: [8/17] Analyzing https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.report.RepoCloner waitForCloneProcess -INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git completed! -Oct 11, 2023 3:04:55 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-3/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-3/tp.git (master) completed! -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos INFO: [9/17] Analyzing https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 11, 2023 3:04:55 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T18-4/tp.git completed! +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113T-W11-2/tp.git... +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git to complete... +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:55 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-1/tp.git completed! +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner spawnCloneProcess +INFO: Cloning in parallel from https://github.com/AY2324S1-CS2113-T17-1/tp.git... +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Waiting for cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git to complete... +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-F11-2/tp.git completed! +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-W12-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-W12-1/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos INFO: [10/17] Analyzing https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [11/17] Analyzing https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-3/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-3/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [12/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-2/tp.git (master) completed! +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos +INFO: [11/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos +INFO: [12/17] Analyzing https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T18-4/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113T-W11-2/tp.git completed! +Oct 11, 2023 1:40:05 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-1/tp.git completed! +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master) completed! +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos +INFO: [13/17] Analyzing https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... +Oct 11, 2023 1:40:05 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T18-4/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T18-4/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [13/17] Analyzing https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator analyzeRepos +INFO: [14/17] Analyzing https://github.com/AY2324S1-CS2113-F11-2/tp.git (master)... +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-F11-1/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-1/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [14/17] Analyzing https://github.com/AY2324S1-CS2113-F11-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:05 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-F11-2/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:05 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-F11-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-1/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos -INFO: [15/17] Analyzing https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepos +INFO: [15/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-F11-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-F11-2/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-F11-2/tp.git (master) completed! -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator analyzeRepos +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepos INFO: [16/17] Analyzing https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.report.ReportGenerator updateRepoConfig +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator updateRepoConfig INFO: https://github.com/AY2324S1-CS2113-T17-1/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:56 AM reposense.authorship.FileInfoExtractor extractTextFileInfos +Oct 11, 2023 1:40:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 11, 2023 3:04:56 AM reposense.commits.CommitInfoExtractor extractCommitInfos -INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits -INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator analyzeRepo -INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) completed! -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator analyzeRepos -INFO: [17/17] Analyzing https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator updateRepoConfig -INFO: https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) does not contain a standalone config file. -Oct 11, 2023 3:04:57 AM reposense.authorship.FileInfoExtractor extractTextFileInfos -INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:06 PM reposense.report.RepoCloner waitForCloneProcess +INFO: Cloning of https://github.com/AY2324S1-CS2113-T17-2/tp.git completed! +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113T-W11-2/tp.git (master) completed! -Oct 11, 2023 3:04:57 AM reposense.commits.CommitInfoExtractor extractCommitInfos +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepos +INFO: [17/17] Analyzing https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator updateRepoConfig +INFO: https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) does not contain a standalone config file. +Oct 11, 2023 1:40:06 PM reposense.authorship.FileInfoExtractor extractTextFileInfos +INFO: Extracting relevant file info from https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos +INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits +INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-2/tp.git (master)... +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepo +INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-2/tp.git (master) completed! +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoExtractor extractCommitInfos INFO: Extracting commits info for https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.commits.CommitInfoAnalyzer analyzeCommits +Oct 11, 2023 1:40:06 PM reposense.commits.CommitInfoAnalyzer analyzeCommits INFO: Analyzing commits info for https://github.com/AY2324S1-CS2113-T17-1/tp.git (master)... -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator analyzeRepo +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator analyzeRepo INFO: Analysis of https://github.com/AY2324S1-CS2113-T17-1/tp.git (master) completed! -Oct 11, 2023 3:04:57 AM reposense.report.ReportGenerator generateReposReport +Oct 11, 2023 1:40:06 PM reposense.report.ReportGenerator generateReposReport INFO: The report is generated at /home/runner/work/tp-dashboard/tp-dashboard/reposense-report -Oct 11, 2023 3:04:57 AM reposense.RepoSense main -INFO: Elapsed processing time: 6.00 second(s) +Oct 11, 2023 1:40:06 PM reposense.RepoSense main +INFO: Elapsed processing time: 5.94 second(s) diff --git a/summary.json b/summary.json index 48825eb..a5fec72 100644 --- a/summary.json +++ b/summary.json @@ -1 +1 @@ -{"repoSenseVersion":"7bc056ab65","reportGeneratedTime":"Wed Oct 11 11:04:51 2023 UTC+08:00","reportGenerationTime":" 5.97 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2113 tP Code Dashboard","repos":[{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-1/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-2/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-1/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-2/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-3/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-4/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-1/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-2/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-3/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-3_tp_master"}],"errorSet":[],"sinceDate":"2023-09-22","untilDate":"2023-10-11","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}} +{"repoSenseVersion":"0c4045d4f4","reportGeneratedTime":"Wed Oct 11 21:40:01 2023 UTC+08:00","reportGenerationTime":" 5.90 second(s)","zoneId":"UTC+08:00","reportTitle":"CS2113 tP Code Dashboard","repos":[{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-1/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113T-W11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113T-W11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113T-W11-2/tp[master]","outputFolderName":"AY2324S1-CS2113T-W11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-1/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-2/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-3/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-W12-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-W12-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-W12-4/tp[master]","outputFolderName":"AY2324S1-CS2113-W12-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T17-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T17-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T17-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T17-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-1/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-2/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-3/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-3_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-T18-4/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-T18-4","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-T18-4/tp[master]","outputFolderName":"AY2324S1-CS2113-T18-4_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-1/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-1","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-1/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-1_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-2/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-2","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-2/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-2_tp_master"},{"location":{"location":"https://github.com/AY2324S1-CS2113-F11-3/tp.git","repoName":"tp","organization":"AY2324S1-CS2113-F11-3","domainName":"github"},"branch":"master","displayName":"AY2324S1-CS2113-F11-3/tp[master]","outputFolderName":"AY2324S1-CS2113-F11-3_tp_master"}],"errorSet":[],"sinceDate":"2023-09-22","untilDate":"2023-10-11","isSinceDateProvided":true,"isUntilDateProvided":false,"supportedDomainUrlMap":{"NOT_RECOGNIZED":{"BRANCH":"","REPO_URL":"UNSUPPORTED","BASE_URL":"UNSUPPORTED","HISTORY_PATH":"","COMMIT_PATH":"","BLAME_PATH":""},"github":{"BRANCH":"tree/$BRANCH","REPO_URL":"https://github.com/$ORGANIZATION/$REPO_NAME/","BASE_URL":"https://github.com/","HISTORY_PATH":"commits/$BRANCH/$FILE_PATH","COMMIT_PATH":"commit/$COMMIT_HASH","BLAME_PATH":"blame/$BRANCH/$FILE_PATH"}}}