diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f818cc00495..20087625011 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -23,6 +23,8 @@ If you're new to the Command-Line Interface and need assistance, this User Guide +* Table of Contents + {:toc} ### How to use the User Guide You may refer to the **Table of Contents** on the right for easy navigation of the User Guide. @@ -77,7 +79,7 @@ The following describes what each panel contains: 3. Copy the file to the folder you want to use as the _home folder_ for your F.A.K.E.J.A.R.V.I.S.. 4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar fakejarvis.jar` command to run the application.
- A GUI similar to the below should appear in a few seconds. (Currently, the image below is a mock-up of our GUI) Note how the app contains some sample data.
+ A GUI similar to the image below should appear in a few seconds. (Currently, the image below is a mock-up of our GUI) Note how the app contains some sample data.
![Ui](images/Ui.png) @@ -326,24 +328,23 @@ Examples: * `takeattendance n/John Doe s/5 present` Marks John Doe as present on the 5th session. * `takeattendance n/Foo Bar s/2 absent` Marks Foo Bar as absent on the 2nd session. -### 👀Viewing attendance: viewattendance +### 👀Viewing attendance: `viewattendance` Views the attendance list -Format: `viewattendance n/STUDENT_NAME s/SESSION` +Format: `viewattendance n/STUDENT_NAME [MORE_STUDENT_NAMES]` Parameters: -* STUDENT_NAME - The name of the student. -* SESSION - The session number. +* STUDENT_NAME - The name of the student you want to view the attendance of. Examples: * `viewattendance` Displays the overall attendance across all students and sessions. -* `viewattendance n/Rayan` Displays Rayan’s overall attendance. -* `viewattendance s/3` Displays all students’ attendance for the 3rd session. +* `viewattendance n/Rayan` Displays all the sessions that Rayan has attended. +* `viewattendance n/Jayson Resley` Displays all the sessions that Jayson and Resley have attended. -### 🔎Finding a Student: find +### 🔎Finding a Student: `find` Finds a student’s profile -Format: `find n/STUDENT_NAME` +Format: `find n/STUDENT_NAME [MORE_STUDENT_NAMES]` Parameters: * STUDENT_NAME - The name of the student you want to find. @@ -352,7 +353,7 @@ Examples: * `find n/John Doe` Finds and displays the profile of students with the name “John Doe”. * `find n/Jane Doe` Finds and displays the profile of students with the name “Jane Doe”. -### 🥅Filtering results: filter +### 🥅Filtering results: `filter` Filters the results displayed on the dashboard Format: @@ -506,7 +507,7 @@ Shows the list of upcoming consultations. Format: `showconsults` -Examples: +Example: * `showconsults` displays a list of upcoming consultations @@ -543,7 +544,7 @@ Examples: * `addtoconsult -1 n/Foo Bar`shows an error message. -### ❌Remove students from a consultation: `removefromconsult` +### ❌Removing students from a consultation: `removefromconsult` Removes student(s) from a consultation. Format: `removefromconsult INDEX n/STUDENT_NAME …` @@ -574,7 +575,7 @@ Examples: ## FAQ -**Q**: How do I transfer my data to another Computer?
+**Q**: How do I transfer my data to another computer?
**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous F.A.K.E.J.A.R.V.I.S. home folder. -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 00000000000..10e6731ad27 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +markdown: kramdown diff --git a/docs/team/ldinghan.md b/docs/team/ldinghan.md index 1080cd3bbe0..3c427798630 100644 --- a/docs/team/ldinghan.md +++ b/docs/team/ldinghan.md @@ -8,9 +8,13 @@ F.A.K.E.J.A.R.V.I.S. is a project to help CS1101S Avengers manage their time and Below are my contributions to the project: -* **New Features**: To be added +* **New Features**: +* Create session +* Add remarks to sessions +* Take attendance of students +* View attendance of students -* **Code contributed**: To be added +* **Code contributed**: [RepoSense](https://nus-cs2103-ay2324s1.github.io/tp-dashboard/?search=ldinghan&breakdown=true) * **Project management**: To be added @@ -26,7 +30,7 @@ Below are my contributions to the project: * **Review/mentoring contributions**: To be added -* **Tools**: To be added +* **Tools**: Java, IntelliJ, FXML, PlantUML * **Contributions beyond the project team**: To be added diff --git a/docs/team/raydenlim.md b/docs/team/raydenlim.md index bc7d0c70714..990e924c28b 100644 --- a/docs/team/raydenlim.md +++ b/docs/team/raydenlim.md @@ -19,12 +19,14 @@ F.A.K.E.J.A.R.V.I.S. is a brownfield project built on Address Book 3 (AB3), with Given below are my contributions to the project. -* **New Feature 1**: - * Highlights: +* **New Features**: + * GradedTests + * View graded tests of students at a glance. + * Dynamically update/edit any graded test scores. +

+ * Credits: + * My last braincell and his friend - * Credits: - -* **New Feature 2**: * **Code contributed**: [RepoSense link](https://tinyurl.com/CS2103T15raydenlim) @@ -33,12 +35,14 @@ Given below are my contributions to the project. * **Enhancements to existing features**: * **Documentation**: - * User Guide: + * User Guide: - * Developer Guide: + * Developer Guide: * **Community**: * **Tools**: - -* _{you can add/remove categories in the list above}_ + * Jave + * IntelliJ + * FXML + * PlantUML diff --git a/src/main/java/seedu/address/logic/commands/ViewAttendanceCommand.java b/src/main/java/seedu/address/logic/commands/ViewAttendanceCommand.java index fa0efdc5b60..bfd5568e842 100644 --- a/src/main/java/seedu/address/logic/commands/ViewAttendanceCommand.java +++ b/src/main/java/seedu/address/logic/commands/ViewAttendanceCommand.java @@ -3,11 +3,13 @@ import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import java.util.function.Predicate; + import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.Messages; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; -import seedu.address.model.session.SessionStudentsContainsKeywordsPredicate; +import seedu.address.model.session.Session; /** @@ -21,14 +23,14 @@ public class ViewAttendanceCommand extends Command { + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe Alice"; - private final SessionStudentsContainsKeywordsPredicate predicate; + private final Predicate predicate; /** * Creates a `ViewAttendanceCommand` to view attendance of student(s) listed. * * @param predicate The names of the student(s). */ - public ViewAttendanceCommand(SessionStudentsContainsKeywordsPredicate predicate) { + public ViewAttendanceCommand(Predicate predicate) { this.predicate = predicate; } diff --git a/src/main/java/seedu/address/logic/parser/ViewAttendanceCommandParser.java b/src/main/java/seedu/address/logic/parser/ViewAttendanceCommandParser.java index 7838cf6a192..d806a0bb8b8 100644 --- a/src/main/java/seedu/address/logic/parser/ViewAttendanceCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/ViewAttendanceCommandParser.java @@ -1,14 +1,15 @@ package seedu.address.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_SESSIONS; import java.util.Arrays; +import java.util.function.Predicate; import java.util.stream.Stream; import seedu.address.logic.commands.ViewAttendanceCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Name; +import seedu.address.model.session.Session; import seedu.address.model.session.SessionStudentsContainsKeywordsPredicate; /** @@ -28,14 +29,14 @@ public ViewAttendanceCommand parse(String args) throws ParseException { argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME); - if (!arePrefixesPresent(argMultimap, PREFIX_NAME) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format( - MESSAGE_INVALID_COMMAND_FORMAT, ViewAttendanceCommand.MESSAGE_USAGE)); + Predicate predicate = PREDICATE_SHOW_ALL_SESSIONS; + + if (argMultimap.getValue(PREFIX_NAME).isPresent()) { + String[] nameKeywords = argMultimap.getValue(PREFIX_NAME).get().split("\\s+"); + predicate = new SessionStudentsContainsKeywordsPredicate(Arrays.asList(nameKeywords)); } - Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); - String[] nameKeywords = name.toString().split("\\s+"); - return new ViewAttendanceCommand(new SessionStudentsContainsKeywordsPredicate(Arrays.asList(nameKeywords))); + return new ViewAttendanceCommand(predicate); } /** diff --git a/src/test/java/seedu/address/logic/parser/ViewAttendanceCommandParserTest.java b/src/test/java/seedu/address/logic/parser/ViewAttendanceCommandParserTest.java index a695d4a5e32..8298f335b30 100644 --- a/src/test/java/seedu/address/logic/parser/ViewAttendanceCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/ViewAttendanceCommandParserTest.java @@ -1,7 +1,8 @@ package seedu.address.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_SESSIONS; import java.util.ArrayList; import java.util.List; @@ -44,14 +45,8 @@ public void parse_validArgumentsWithMultipleNames_success() throws ParseExceptio } @Test - public void parse_missingNamePrefix_throwsParseException() { - String invalidArgs = "John Doe"; - assertThrows(ParseException.class, () -> parser.parse(invalidArgs)); - } - - @Test - public void parse_emptyName_throwsParseException() { - String invalidArgs = " n/"; - assertThrows(ParseException.class, () -> parser.parse(invalidArgs)); + public void parse_emptyArg_success() { + ViewAttendanceCommand expectedCommand = new ViewAttendanceCommand(PREDICATE_SHOW_ALL_SESSIONS); + assertParseSuccess(parser, " ", expectedCommand); } }