Skip to content

Commit

Permalink
Merge branch 'master' into edit-UG
Browse files Browse the repository at this point in the history
  • Loading branch information
amosting authored Nov 13, 2023
2 parents 9d9f64c + 3e36b58 commit e13e7d6
Show file tree
Hide file tree
Showing 39 changed files with 1,006 additions and 152 deletions.
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,29 @@

[![codecov](https://codecov.io/gh/AY2324S1-CS2103T-W10-1/tp/graph/badge.svg?token=4DBT7T1IUV)](https://codecov.io/gh/AY2324S1-CS2103T-W10-1/tp)

This is a CS2103T project by [**AY2324S1-CS2103T-W010-1**](https://github.com/AY2324S1-CS2103T-W10-1/tp). It is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org/).
This is a CS2103T project by [AY2324S1-CS2103T-W10-1](https://ay2324s1-cs2103t-w10-1.github.io/tp/AboutUs.html). It is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org/).

TAfinder is a desktop app for NUS professors to find and track Teaching Assistant (TA) information. It is optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you are an NUS professor that can type fast, and who is in need of an app to find and manage TA information, TAfinder is the app for you!

![Ui](docs/images/Ui.png)

## Features
### Basic Applicant management
- Listing all applicants: list
- Hiding/unhiding an applicant from the list: hide/unhide
- Editing an applicant's information: edit
- Adding an applicant: add
- Viewing an applicant's details: view

## Future updates
### Applicant evaluation & comparison
- Sorting applicants by grades: sort-gpa
- Comparing 2 applicants: compare
- Bookmarking/Unbookmarking an applicant: bookmark/unbookmark
- Adding comments for an applicant: add
### Data management and export
- Exporting applicants into a spreadsheet
- Attaching file to an applicant's profile

- **Basic Applicant management**
- Listing all applicants: `list`
- Hiding/unhiding an applicant from the list: `hide`/`unhide`
- Editing an applicant's information: `edit`
- Adding an applicant: `add`
- Viewing an applicant's details: `view`
- **Applicant evaluation & comparison**
- Sorting applicants by grades: `sort`
- Comparing 2 applicants: `compare`
- Bookmarking/Unbookmarking an applicant: `bookmark`/`unbookmark`
- Adding comments for an applicant: `comment`
- **Data management and export**
- Import applicants from a spreadsheet: `import`
- Attaching file to an applicant's profile: `attach`

## Issues and Bugs

Spot a bug? Let us know by launching a Bug Report at the [Issues tab](https://github.com/AY2324S1-CS2103T-W10-1/tp/issues)!
2 changes: 1 addition & 1 deletion docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: About Us

We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg).

## Project team
## Project Team

### Ravern Koh

Expand Down
2 changes: 0 additions & 2 deletions docs/DevOps.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
title: DevOps guide
---

# DevOps guide

## Build automation

This project uses Gradle for **build automation and dependency management**. **You are recommended to read [this Gradle Tutorial from the se-edu/guides](https://se-education.org/guides/tutorials/gradle.html)**.
Expand Down
212 changes: 110 additions & 102 deletions docs/DeveloperGuide.md

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions docs/SettingUp.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
title: Setting up and getting started
---

# Setting up and getting started

## Setting up the project in your computer

<div markdown="span" class="alert alert-warning">:exclamation: **Caution:**
Expand Down
4 changes: 1 addition & 3 deletions docs/Testing.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
---
title: Testing guide
title: Testing
---

# Testing

## Running tests

There are two ways to run tests.
Expand Down
9 changes: 7 additions & 2 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ Some example commands you can try:
</div>

### Navigating the User Interface
![UI with shaded areas](images/navigationUI.png)

![UI with shaded areas](images/navigation_coloredUI.png)

The UI has the following areas:
- Navigation Bar
Expand Down Expand Up @@ -738,7 +739,11 @@ Empty list:<br>

Compares two applicants side by side to make informed decisions.

![compare function UI](images/compareUI.png)

| TAfinder window | Popup window |
|:----------------------------------:|:----------------------------------------------:|
| ![compareUI](images/compareUI.png) | ![compare_popupUI](images/compare_popupUI.png) |


**Format:**

Expand Down
30 changes: 30 additions & 0 deletions docs/diagrams/AttachActivityDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
@startuml
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:User enters "attach 1 f/resume.pdf" command;
:AttachCommandParser parses the command;
if () then ([successful parse])
:Valid argument format;
else ([else])
:Display error message;
stop
endif
:Begin AttachCommand execution;
if () then ([index within visible range])
:Fetch applicant to attach to;
else ([else])
:Display error message;
stop
endif
:Copy attachments into data directory;
if () then ([found errors while copying])
:Display error message;
stop
else ([else])
:Update person with new attachments;
endif
:Display success message;
stop
@enduml
84 changes: 84 additions & 0 deletions docs/diagrams/AttachSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":AttachCommandParser" as AttachCommandParser LOGIC_COLOR
participant ":AttachCommand" as AttachCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
participant "attachedPerson:Person" as Person MODEL_COLOR
end box

[-> LogicManager : execute("attach 1 f/resume.pdf f/transcript.pdf")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("attach 1 f/resume.pdf f/transcript.pdf")
activate AddressBookParser

create AttachCommandParser
AddressBookParser -> AttachCommandParser
activate AttachCommandParser

AttachCommandParser --> AddressBookParser
deactivate AttachCommandParser

AddressBookParser -> AttachCommandParser : parse("1 f/resume.pdf f/transcript.pdf")
activate AttachCommandParser

create AttachCommand
AttachCommandParser -> AttachCommand
activate AttachCommand

AttachCommand --> AttachCommandParser
deactivate AttachCommand

AttachCommandParser --> AddressBookParser
deactivate AttachCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
AttachCommandParser -[hidden]-> AddressBookParser
destroy AttachCommandParser

AddressBookParser --> LogicManager
deactivate AddressBookParser

LogicManager -> AttachCommand : execute()
activate AttachCommand

loop 2 times
AttachCommand --> AttachCommand : copyAttachment()
activate AttachCommand
deactivate AttachCommand
end

create Person
AttachCommand --> Person
activate Person

Person --> AttachCommand
deactivate Person

AttachCommand -> Model : setPerson(person)
activate Model

Model --> AttachCommand
deactivate Model

create CommandResult
AttachCommand -> CommandResult
activate CommandResult

CommandResult --> AttachCommand
deactivate CommandResult

AttachCommand --> LogicManager : result
deactivate AttachCommand

[<--LogicManager
deactivate LogicManager
@enduml
19 changes: 19 additions & 0 deletions docs/diagrams/CommentActivityDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@startuml
skin rose
skinparam ActivityFontSize 15
skinparam ArrowFontSize 12
start
:User enters "comment 3 c/Hardworking" command;
:CommentCommandParser parses the command;
if () then ([successful parse])
:Valid index;
else ([else])
:Display error message;
stop
endif

:Execute CommentCommand;
:Update applicant;
:Display success message;
stop
@enduml
41 changes: 41 additions & 0 deletions docs/diagrams/CommentSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain


actor User

box Ui MODEL_COLOR_T1
participant ":UI" as UI RED_COLOR

box Logic LOGIC_COLOR_T1
participant ":CommentCommand" as CommentCommand BLUE_COLOR
participant ":CommentCommandParser" as CommentCommandParser GREEN_COLOR
participant ":ParserUtil" as ParserUtil GREEN_COLOR


User -> UI: "comment 3 c/Hardworking"
activate UI

UI -> CommentCommand: Execute command
activate CommentCommand

CommentCommand -> CommentCommandParser: Parse command
activate CommentCommandParser

CommentCommandParser -> ParserUtil: Parse index
activate ParserUtil
ParserUtil -> ParserUtil: Validate index
activate ParserUtil
deactivate ParserUtil

ParserUtil --> CommentCommandParser: Valid index
deactivate ParserUtil
CommentCommandParser --> CommentCommand: Valid index
deactivate CommentCommandParser
CommentCommand --> UI: Valid applicant
deactivate CommentCommand
UI --> User: MainWindow
deactivate

@enduml
Binary file added docs/images/AttachActivityDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/AttachSequenceDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/CommentActivityDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/CommentSequenceDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/clear_afterUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/clear_beforeUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/compareUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/compare_popupUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/unbookmark_afterUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/unbookmark_beforeUI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ layout: default
title: Home
---

[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions)
[![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3)
[![CI Status](https://github.com/AY2324S1-CS2103T-W10-1/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S1-CS2103T-W10-1/tp/actions)
[![codecov](https://codecov.io/gh/AY2324S1-CS2103T-W10-1/tp/graph/badge.svg?token=4DBT7T1IUV)](https://codecov.io/gh/AY2324S1-CS2103T-W10-1/tp)

![Ui](images/Ui.png)

**TAfinder is a desktop application for managing your contact details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
**TAfinder is a desktop resource management application used by NUS SoC professors to choose TAs from a large pool of applicants.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start).
* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start.
* If you are interested in using TAfinder, head over to the [**User Guide**](UserGuide.html).
* If you are interested about developing TAfinder, the [**Developer Guide**](DeveloperGuide.html) is a good place to start.


**Acknowledgements**
Expand Down
2 changes: 1 addition & 1 deletion docs/team/amosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Amos' Project Portfolio Page

## Project: TAfinder

TAfinder is a desktop address book application used by SOC professors to choose TAs from a large pool of applicants.
TAfinder is a desktop address book application used by SOC professors to choose TAs from a large pool of applicants.
The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.
Expand Down
2 changes: 1 addition & 1 deletion docs/team/nabonitasen.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Nabonita's Project Portfolio Page

## Project: TAfinder

TAfinder is a desktop address book application used by SOC professors to choose TAs from a large pool of applicants. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
TAfinder is a desktop resource management application used by NUS SOC professors to choose TAs from a large pool of applicants. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

Expand Down
3 changes: 3 additions & 0 deletions src/main/java/seedu/address/logic/commands/AttachCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ public CommandResult execute(Model model) throws CommandException {
List<Attachment> updatedAttachments = new ArrayList<>(personToAttachTo.getAttachments());
try {
for (Attachment attachment : attachments) {
if (attachment.file.isDirectory()) {
throw new CommandException(MESSAGE_FAILED_TO_COPY);
}
checkAttachmentUnique(attachment, updatedAttachments);
Attachment copiedAttachment = copyAttachment(
model.getUserPrefs().getAttachmentsBasePath(), attachment, personToAttachTo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,18 @@ public class CompareCommandParser implements Parser<CompareCommand> {
public CompareCommand parse(String args) throws ParseException {
try {
String[] splitArgs = args.trim().split("\\s+");
if (splitArgs.length != 2) {
throw new ParseException("Invalid command format!\n"
+ "Please follow the format: compare INDEX1 INDEX2.\n"
+ "Parameters: INDEX (must be positive integers)");
}
Index index1 = ParserUtil.parseIndex(splitArgs[0]);
Index index2 = ParserUtil.parseIndex(splitArgs[1]);
return new CompareCommand(index1, index2);
} catch (ParseException pe) {
throw new ParseException("Error: Please provide valid indices for both applicants."
+ "Follow the format: compare INDEX1 INDEX2.", pe);
throw new ParseException("Invalid command format!\n"
+ "Please follow the format: compare INDEX1 INDEX2.\n"
+ "Parameters: INDEX (must be positive integers)");
}
}
}
18 changes: 11 additions & 7 deletions src/main/java/seedu/address/ui/CompareWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,11 @@ public CompareWindow(Person person1, Person person2) {
//person1 stuff
Gpa gpa1 = person1.getGpa();
PreviousGrade mGrade1 = person1.getPreviousGrade();
InterviewScore interviewScore1 = person1.getInterviewScore().get();
InterviewScore interviewScore1 = null;
String interviewScoreString1;

if (person1.getInterviewScore().isPresent()) {
interviewScore1 = person1.getInterviewScore().get();
interviewScoreString1 = interviewScore1.toString();
} else {
interviewScoreString1 = "-";
Expand All @@ -98,10 +99,11 @@ public CompareWindow(Person person1, Person person2) {
//person2 stuff
Gpa gpa2 = person2.getGpa();
PreviousGrade mGrade2 = person2.getPreviousGrade();
InterviewScore interviewScore2 = person2.getInterviewScore().get();
InterviewScore interviewScore2 = null;
String interviewScoreString2;

if (person1.getInterviewScore().isPresent()) {
if (person2.getInterviewScore().isPresent()) {
interviewScore2 = person2.getInterviewScore().get();
interviewScoreString2 = interviewScore2.toString();
} else {
interviewScoreString2 = "-";
Expand Down Expand Up @@ -136,10 +138,12 @@ public CompareWindow(Person person1, Person person2) {
gpa2Highlight.setOpacity(0.33);
}

if (interviewScore1.compareTo(interviewScore2) > 0) {
iScore1Highlight.setOpacity(0.33);
} else if (interviewScore1.compareTo(interviewScore2) < 0) {
iScore2Highlight.setOpacity(0.33);
if (interviewScoreString1 != "-" && interviewScoreString2 != "-") {
if (interviewScore1.compareTo(interviewScore2) > 0) {
iScore1Highlight.setOpacity(0.33);
} else if (interviewScore1.compareTo(interviewScore2) < 0) {
iScore2Highlight.setOpacity(0.33);
}
}

if (mGrade1.compareTo(mGrade2) < 0) {
Expand Down
Loading

0 comments on commit e13e7d6

Please sign in to comment.