Skip to content

Commit

Permalink
Merge branch 'master' into branch-Update-Organization
Browse files Browse the repository at this point in the history
  • Loading branch information
wxwern committed Oct 19, 2023
2 parents d25f202 + 4bfdba6 commit 3071a16
Show file tree
Hide file tree
Showing 43 changed files with 350 additions and 303 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
## SteveJobs++ (SJ++)
## Jobby

[![CI Status](https://github.com/AY2324S1-CS2103T-W08-3/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S1-CS2103T-W08-3/tp/actions)

SJ++ is a desktop application that helps you manage your job applications by easily recording organization and recruiter contacts, plus note down information about your applications. It is optimized for CLI use, so you can operate the application with only your keyboard.
Jobby is a desktop application that helps you manage your job applications by easily recording organization and recruiter contacts, plus note down information about your applications. It is optimized for CLI use, so you can operate the application with only your keyboard.

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

* The project simulates an ongoing software project for a desktop application used for managing contact details regarding organizations and recruiters and job application status info.
* It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big.
* It comes with a **reasonable level of user and developer documentation**.
* It is an extension built on top of **[Address Book Level 3 by se-education.org](https://se-education.org/addressbook-level3)**.
* For detailed documentation of this project, see the **[SJ++ Product Website](https://ay2324s1-cs2103t-w08-3.github.io/tp/)**.
* For detailed documentation of this project, see the **[Jobby Product Website](https://ay2324s1-cs2103t-w08-3.github.io/tp/)**.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ dependencies {
}

shadowJar {
archiveFileName = 'sjobs.jar'
archiveFileName = 'jobby.jar'
}

defaultTasks 'clean', 'test'
10 changes: 5 additions & 5 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,16 +287,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

### Use cases

(For all use cases below, the **System** is `SJ++` and the **Actor** is the `user`, unless specified otherwise)
(For all use cases below, the **System** is `Jobby` and the **Actor** is the `user`, unless specified otherwise)

**Use case: Delete a contact**

**MSS**

1. User requests to list organizations
2. SJ++ shows a list of organizations
2. Jobby shows a list of organizations
3. User requests to delete a specific organization in the list
4. SJ++ deletes the organization
4. Jobby deletes the organization

Use case ends.

Expand All @@ -308,7 +308,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

* 3a. The given index is invalid.

* 3a1. SJ++ shows an error message.
* 3a1. Jobby shows an error message.

Use case resumes at step 2.

Expand All @@ -319,7 +319,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
2. Should be able to hold up to 1000 contacts without a noticeable sluggishness in performance for typical usage.
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
4. A user with familiarity with common Unix/Linux shell command syntax should find the syntax of SJ++ to match their habits and easy to pick up.
4. A user with familiarity with common Unix/Linux shell command syntax should find the syntax of Jobby to match their habits and easy to pick up.
5. The command syntax should not conflict with something that a user could plausibly use as legitimate data input.


Expand Down
2 changes: 1 addition & 1 deletion docs/Documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ title: Documentation guide
* To learn how set it up and maintain the project website, follow the guide [_[se-edu/guides] **Using Jekyll for project documentation**_](https://se-education.org/guides/tutorials/jekyll.html).
* Note these points when adapting the documentation to a different project/product:
* The 'Site-wide settings' section of the page linked above has information on how to update site-wide elements such as the top navigation bar.
* :bulb: In addition to updating content files, you might have to update the config files `docs\_config.yml` and `docs\_sass\minima\_base.scss` (which contains a reference to `SJ++` that comes into play when converting documentation pages to PDF format).
* :bulb: In addition to updating content files, you might have to update the config files `docs\_config.yml` and `docs\_sass\minima\_base.scss` (which contains a reference to `Jobby` that comes into play when converting documentation pages to PDF format).
* If you are using Intellij for editing documentation files, you can consider enabling 'soft wrapping' for `*.md` files, as explained in [_[se-edu/guides] **Intellij IDEA: Useful settings**_](https://se-education.org/guides/tutorials/intellijUsefulSettings.html#enabling-soft-wrapping)


Expand Down
16 changes: 8 additions & 8 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: page
title: User Guide
---

SteveJobs++ (SJ++) is a **desktop app for managing job applications and contacts, optimized for use via a Command Line Interface (CLI)** while still having the benefits of a Graphical User Interface (GUI). SJ++ can help you manage tracking your job applications and contacts in a more streamlined fashion. If you can type fast, SJ++ can get your contact management tasks done faster than traditional GUI apps.
**Jobby** is a **desktop app for managing job applications and contacts, optimized for use via a Command Line Interface (CLI)** while still having the benefits of a Graphical User Interface (GUI). Jobby can help you manage tracking your job applications and contacts in a more streamlined fashion. If you can type fast, Jobby can get your contact management tasks done faster than traditional GUI apps.

* Table of Contents
{:toc}
Expand All @@ -14,11 +14,11 @@ SteveJobs++ (SJ++) is a **desktop app for managing job applications and contacts

1. Ensure you have Java `11` or above installed in your Computer.

1. Download the latest `sjobs.jar` from [here](https://github.com/AY2324S1-CS2103T-W08-3/tp/releases).
1. Download the latest `jobby.jar` from [here](https://github.com/AY2324S1-CS2103T-W08-3/tp/releases).

1. Copy the file to the folder you want to use as the _home folder_ for your SteveJobs Application.
1. Copy the file to the folder you want to use as the _home folder_ for your Jobby Application.

1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar sjobs.jar` command to run the application.<br>
1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar jobby.jar` command to run the application.<br>
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.<br>
![Ui](images/Ui.png)

Expand Down Expand Up @@ -217,15 +217,15 @@ Format: `exit`

### Saving the data

SJ++ data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Jobby data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.


### Editing the data file

SJ++ data are saved automatically as a JSON file `[JAR file location]/data/sjobs.json`. Advanced users are welcome to update data directly by editing that data file.
Jobby data are saved automatically as a JSON file `[JAR file location]/data/jobby.json`. Advanced users are welcome to update data directly by editing that data file.

<div markdown="span" class="alert alert-warning">:exclamation: **Caution:**
If your changes to the data file makes its format invalid, SJ++ will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
If your changes to the data file makes its format invalid, Jobby will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
</div>


Expand All @@ -234,7 +234,7 @@ If your changes to the data file makes its format invalid, SJ++ will discard all
## FAQ

**Q**: How do I transfer my data to another Computer?<br>
**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 SJ++ home folder.
**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 Jobby home folder.

--------------------------------------------------------------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/_config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
title: "SJ++"
title: "Jobby"
theme: minima

header_pages:
Expand Down
2 changes: 1 addition & 1 deletion docs/_data/projects.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- name: "SJ++"
- name: "Jobby"
url: https://ay2324s1-cs2103t-w08-3.github.io/tp/


2 changes: 1 addition & 1 deletion docs/_sass/minima/_base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ table {
text-align: center;
}
.site-header:before {
content: "SJ++";
content: "Jobby";
font-size: 32px;
}
}
Expand Down
9 changes: 4 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
---
layout: page
title: SteveJobs++
title: Jobby
---

[![CI Status](https://github.com/AY2324S1-CS2103T-W08-3/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S1-CS2103T-W08-3/tp/actions)
[![codecov](https://codecov.io/gh/AY2324S1-CS2103T-W08-3/tp/branch/master/graph/badge.svg)](https://codecov.io/gh/AY2324S1-CS2103T-W08-3/tp)

![Ui](images/Ui.png)

**SteveJobs++ (SJ++) is a desktop application for managing your job application details, specifically organization and recruiter contacts, plus application info and status.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
**Jobby is a desktop application for managing your job application details, specifically organization and recruiter contacts, plus application info and status.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).

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


**Acknowledgements**

* Libraries used: [JavaFX](https://openjfx.io/), [Jackson](https://github.com/FasterXML/jackson), [JUnit5](https://github.com/junit-team/junit5)
* Named in honor of [Steve Jobs](https://en.wikipedia.org/wiki/Steve_Jobs)
4 changes: 2 additions & 2 deletions docs/team/cj-lee01.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### Project: SteveJobs++
### Project: Jobby

SteveJobs++ is a desktop address book and job application tracking tool. The user interacts with it using a CLI, and it has a GUI created in JavaFX. It is written in Java.
Jobby is a desktop address book and job application tracking tool. The user interacts with it using a CLI, and it has a GUI created in JavaFX. It is written in Java.

Given below are my contributions to the project.

Expand Down
6 changes: 3 additions & 3 deletions docs/team/mcnabry.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ layout: page
title: Bryan's Project Portfolio Page
---

### Project: SteveJobs++
### Project: Jobby

SteveJobs++ (SJ++) is a desktop app for managing job applications and contacts,
Jobby is a desktop app for managing job applications and contacts,
optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
SJ++ can help you manage tracking your job applications and contacts in a more streamlined fashion.
Jobby can help you manage tracking your job applications and contacts in a more streamlined fashion.

Given below are my contributions to the project.

Expand Down
4 changes: 2 additions & 2 deletions docs/team/tanshiyu1999.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### Project: SteveJobs++
### Project: Jobby

SteveJobs++ is a desktop address book and job application tracking tool. The user interacts with it using a CLI, and it has a GUI created in JavaFX. It is written in Java.
Jobby is a desktop address book and job application tracking tool. The user interacts with it using a CLI, and it has a GUI created in JavaFX. It is written in Java.

Given below are my contributions to the project.

Expand Down
4 changes: 2 additions & 2 deletions docs/team/wamps-jp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ layout: page
title: Juanpa's Project Portfolio Page
---

### Project: SteveJobs++
### Project: Jobby

SteveJobs++ (SJ++) is a desktop app for tracking job applications.
Jobby is a desktop app for tracking job applications.
It saves organisations and recruiters as contacts in an addressbook.

Given below are my contributions to the project.
Expand Down
4 changes: 2 additions & 2 deletions docs/team/wxwern.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ layout: page
title: Wern's Project Portfolio Page
---

### Project: SteveJobs++
### Project: Jobby

SteveJobs++ is a desktop application used for tracking job applications.
Jobby is a desktop application used for tracking job applications.

Given below are my contributions to the project.

Expand Down
2 changes: 1 addition & 1 deletion docs/tutorials/AddRemark.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ While the changes to code may be minimal, the test data will have to be updated

<div markdown="span" class="alert alert-warning">

:exclamation: You must delete AddressBook’s storage file located at `/data/sjobs.json` before running it! Not doing so will cause AddressBook to default to an empty address book!
:exclamation: You must delete AddressBook’s storage file located at `/data/jobby.json` before running it! Not doing so will cause AddressBook to default to an empty address book!

</div>

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/seedu/address/commons/core/LogsCenter.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
public class LogsCenter {
private static final int MAX_FILE_COUNT = 5;
private static final int MAX_FILE_SIZE_IN_BYTES = (int) (Math.pow(2, 20) * 5); // 5MB
private static final String LOG_FILE = "sjobs.log";
private static final String LOG_FILE = "jobby.log";
private static final Logger logger; // logger for this class
private static Logger baseLogger; // to be used as the parent of all other loggers created by this class.
private static Level currentLogLevel = Level.INFO;
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/seedu/address/logic/Messages.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,13 @@ public static String format(Contact contact) {
.append("; Id: ")
.append(contact.getId())
.append("; Phone: ")
.append(contact.getPhone())
.append(contact.getPhone().map(p -> p.value).orElse("(none)"))
.append("; Email: ")
.append(contact.getEmail())
.append(contact.getEmail().map(e -> e.value).orElse("(none)"))
.append("; Url: ")
.append(contact.getUrl())
.append(contact.getUrl().map(u -> u.value).orElse("(none)"))
.append("; Address: ")
.append(contact.getAddress())
.append(contact.getAddress().map(a -> a.value).orElse("(none)"))
.append("; Tags: ");
contact.getTags().forEach(builder::append);
return builder.toString();
Expand Down
60 changes: 51 additions & 9 deletions src/main/java/seedu/address/logic/commands/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
import static seedu.address.logic.parser.CliSyntax.FLAG_EMAIL;
import static seedu.address.logic.parser.CliSyntax.FLAG_ID;
import static seedu.address.logic.parser.CliSyntax.FLAG_NAME;
import static seedu.address.logic.parser.CliSyntax.FLAG_ORGANIZATION;
import static seedu.address.logic.parser.CliSyntax.FLAG_ORGANIZATION_ID;
import static seedu.address.logic.parser.CliSyntax.FLAG_PHONE;
import static seedu.address.logic.parser.CliSyntax.FLAG_POSITION;
import static seedu.address.logic.parser.CliSyntax.FLAG_RECRUITER;
import static seedu.address.logic.parser.CliSyntax.FLAG_STATUS;
import static seedu.address.logic.parser.CliSyntax.FLAG_TAG;
import static seedu.address.logic.parser.CliSyntax.FLAG_URL;

import java.util.logging.Logger;

Expand All @@ -24,21 +30,57 @@ public class AddCommand extends Command {

public static final String COMMAND_WORD = "add";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a contact to the address book. "
public static final String MESSAGE_ORGANIZATION_USAGE = "Adds an organization. "
+ "Parameters: "
+ FLAG_ORGANIZATION + " "
+ FLAG_NAME + " NAME "
+ FLAG_ID + " ID "
+ FLAG_PHONE + " PHONE "
+ FLAG_EMAIL + " EMAIL "
+ FLAG_ADDRESS + " ADDRESS "
+ "[" + FLAG_ID + " ID] "
+ "[" + FLAG_PHONE + " PHONE] "
+ "[" + FLAG_EMAIL + " EMAIL] "
+ "[" + FLAG_URL + " URL] "
+ "[" + FLAG_ADDRESS + " ADDRESS] "
+ "[" + FLAG_STATUS + " STATUS] "
+ "[" + FLAG_POSITION + " POSITION] "
+ "[" + FLAG_TAG + " TAG]...\n"
+ "Example: " + COMMAND_WORD + " "
+ FLAG_NAME + " John Doe "
+ FLAG_ORGANIZATION + " "
+ FLAG_NAME + " JobsInc "
+ FLAG_ID + " id_12345-1 "
+ FLAG_PHONE + " 98765432 "
+ FLAG_EMAIL + " johnd@example.com "
+ FLAG_EMAIL + " jobsInc@example.com "
+ FLAG_URL + " www.jobsinc.com "
+ FLAG_ADDRESS + " 311, Clementi Ave 2, #02-25 "
+ FLAG_TAG + " friends "
+ FLAG_TAG + " owesMoney";
+ FLAG_STATUS + " applied "
+ FLAG_POSITION + " Junior Software Engineer "
+ FLAG_TAG + " softwareEngineering "
+ FLAG_TAG + " competitive ";

public static final String MESSAGE_RECRUITER_USAGE = "Adds a recruiter. "
+ "Parameters: "
+ FLAG_RECRUITER + " "
+ FLAG_NAME + " NAME "
+ "[" + FLAG_ID + " ID] "
+ "[" + FLAG_ORGANIZATION_ID + " ORG_ID] "
+ "[" + FLAG_PHONE + " PHONE] "
+ "[" + FLAG_EMAIL + " EMAIL] "
+ "[" + FLAG_URL + " URL] "
+ "[" + FLAG_ADDRESS + " ADDRESS] "
+ "[" + FLAG_TAG + " TAG]...\n"
+ "Example: " + COMMAND_WORD + " "
+ FLAG_RECRUITER + " "
+ FLAG_NAME + " Steve "
+ FLAG_ID + " id_98765-1 "
+ FLAG_PHONE + " 83452145 "
+ FLAG_EMAIL + " steveJobsInc@example.com "
+ FLAG_URL + " www.linkedin.com/in/steve/ "
+ FLAG_ADDRESS + " 311 W Coast Walk, #02-30 "
+ FLAG_TAG + " friendly ";

public static final String MESSAGE_USAGE = COMMAND_WORD
+ ": Adds a contact to the address book of the class type Organization or Recruiter."
+ " The input format varies depending on the class:\n\n"
+ MESSAGE_ORGANIZATION_USAGE + "\n\n"
+ MESSAGE_RECRUITER_USAGE;

public static final String MESSAGE_SUCCESS = "New contact added: %1$s";
public static final String MESSAGE_DUPLICATE_CONTACT = "This contact already exists in the address book";
Expand Down
Loading

0 comments on commit 3071a16

Please sign in to comment.