diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 00000000000..1e1862b0e82
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,25 @@
+name: MarkBind Action
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build_and_deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install Graphviz
+ run: sudo apt-get install graphviz
+ - name: Install Java
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ - name: Build & Deploy MarkBind site
+ uses: MarkBind/markbind-action@v2
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ rootDirectory: './docs'
+ baseUrl: '/tp' # replace with your repo name
+ version: '^5.1.0'
diff --git a/.gitignore b/.gitignore
index 284c4ca7cd9..eab4c7db6a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ src/test/data/sandbox/
# MacOS custom attributes files created by Finder
.DS_Store
docs/_site/
+docs/_markbind/logs/
diff --git a/README.md b/README.md
index 13f5c77403f..80c1f1ed318 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,17 @@
-[](https://github.com/se-edu/addressbook-level3/actions)
+[](https://github.com/AY2324S1-CS2103T-W17-2/tp/actions)

-* This is **a sample project for Software Engineering (SE) students**.
+* LetsGetHired is **team W17-2's CS2103T Project for AY23/24**.
Example usages:
- * as a starting point of a course project (as opposed to writing everything from scratch)
- * as a case study
-* The project simulates an ongoing software project for a desktop application (called _AddressBook_) used for managing contact details.
- * 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 named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...).
-* For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**.
-* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info.
+ * Track job applications
+ * Overview of pending, rejected and accepted internship applications you have
+ * All so you will never miss interviews or offer acceptance deadlines!
+
+* As a group of Year 2 Computing Students, school takes too much of our attention and there is a possibility of
+ forgetting about internship application follow-ups and interviews that we may have.
+* This app is designed to help students to track their internship applications amidst the heavy internship-hunting season.
+* User Documentation: **[User Guide](docs/UserGuide.md)**.
+* Developer Documentation: **[Developer Guide](docs/DeveloperGuide.md)**.
+* **[About Us](docs/AboutUs.md)**.
+* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).
diff --git a/build.gradle b/build.gradle
index a2951cc709e..50bce3e340c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ plugins {
id 'jacoco'
}
-mainClassName = 'seedu.address.Main'
+mainClassName = 'seedu.letsgethired.Main'
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
@@ -20,6 +20,10 @@ checkstyle {
toolVersion = '10.2'
}
+run {
+ enableAssertions = true
+}
+
test {
useJUnitPlatform()
finalizedBy jacocoTestReport
@@ -65,8 +69,12 @@ dependencies {
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: jUnitVersion
}
+run {
+ enableAssertions = true
+}
+
shadowJar {
- archiveFileName = 'addressbook.jar'
+ archiveFileName = 'letsgethired.jar'
}
defaultTasks 'clean', 'test'
diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 00000000000..1748e487fbd
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1,23 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+_markbind/logs/
+
+# Dependency directories
+node_modules/
+
+# Production build files (change if you output the build to a different directory)
+_site/
+
+# Env
+.env
+.env.local
+
+# IDE configs
+.vscode/
+.idea/*
+*.iml
diff --git a/docs/AboutUs.md b/docs/AboutUs.md
index 1c9514e966a..71b93214874 100644
--- a/docs/AboutUs.md
+++ b/docs/AboutUs.md
@@ -1,59 +1,70 @@
---
-layout: page
-title: About Us
+ layout: default.md
+ title: "About Us"
---
+# About Us
+
We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg).
You can reach us at the email `seer[at]comp.nus.edu.sg`
## Project team
-### John Doe
-
+### Tham You Wei
+
+
-[[homepage](http://www.comp.nus.edu.sg/~damithch)]
-[[github](https://github.com/johndoe)]
-[[portfolio](team/johndoe.md)]
+[[github](https://github.com/tyouwei)]
+[[portfolio](team/tyouwei.md)]
-* Role: Project Advisor
+* Role: Developer
+* Responsibilities: Logic and Model
-### Jane Doe
+### Zheng Yu
-
+
-[[github](http://github.com/johndoe)]
-[[portfolio](team/johndoe.md)]
+[[github](http://github.com/zhengyup)]
+[[portfolio](team/zhengyup.md)]
-* Role: Team Lead
-* Responsibilities: UI
+* **Role**:
+ * Developer
+* **Responsibilities**:
+ * UI and Model
-### Johnny Doe
+### Timothy Putra Prasetio
-
+
-[[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)]
+[[github](https://github.com/tim-pipi)]
+[[portfolio](team/tim-pipi.md)]
-* Role: Developer
-* Responsibilities: Data
+* **Role**:
+ * Project Manager
+* **Responsibilities**:
+ * Meeting Organization
+ * Deadline Management and Tracking
+ * Innovation and Feature Enhancement
+ * GitHub Repository Management
-### Jean Doe
+### Aprup Kale
-
+
-[[github](http://github.com/johndoe)]
-[[portfolio](team/johndoe.md)]
+[[github](http://github.com/aprupkale)]
+[[portfolio](team/aprupkale.md)]
* Role: Developer
-* Responsibilities: Dev Ops + Threading
+* Responsibilities: Testing, Logic and Model, UML diagrams
-### James Doe
+### Zhi Sheng
-
+
-[[github](http://github.com/johndoe)]
-[[portfolio](team/johndoe.md)]
+[[github](https://github.com/zsh-eng)]
+[[portfolio](team/zsh-eng.md)]
* Role: Developer
-* Responsibilities: UI
+* Responsibilities: Testing, Developer Guide
diff --git a/docs/Configuration.md b/docs/Configuration.md
index 13cf0faea16..a7650e36685 100644
--- a/docs/Configuration.md
+++ b/docs/Configuration.md
@@ -1,6 +1,8 @@
---
-layout: page
-title: Configuration guide
+ layout: default.md
+ title: "Configuration Guide"
---
+# Configuration Guide
+
Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: `config.json`).
diff --git a/docs/DevOps.md b/docs/DevOps.md
index d2fd91a6001..217927ea2dd 100644
--- a/docs/DevOps.md
+++ b/docs/DevOps.md
@@ -1,12 +1,15 @@
---
-layout: page
-title: DevOps guide
+ layout: default.md
+ title: "DevOps Guide"
+ pageNav: 3
---
-* Table of Contents
-{:toc}
+# DevOps Guide
---------------------------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+* Can save both intern tracker data and user preference data in [JSON](#glossary) format
+* Read data from [JSON](#glossary) files and convert them into corresponding objects within
+ the application.
+* Inherits from both `InternTrackerStorage` and `UserPrefStorage`, which allows
+ it to be used as either one, depending on the functionality needed.
+* Depends on some classes in the `Model` component (because the `Storage`
+ component's job is to save/retrieve objects that belong to the `Model`).
-How the parsing works:
-* When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object.
-* All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing.
+### Common Classes
-### Model component
-**API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java)
+Classes that are used across multiple components are located within the
+`seedu.letsgethired.commons` package.
+These common classes served as shared utilities and functionalities that
+contribute to the application's overall functionality.
-
+For example, the `seedu.letsgethired.commons.util.StringUtil` class provides
+commonly used string manipulation methods.
+[Back to top](#developer-guide)
-The `Model` component,
+--------------------------------------------------------------------------------------------------------------------
-* stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object).
-* stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList
+This section describes some noteworthy details on how certain features are
+implemented.
-
+* The `AddCommand` is parsed by the `AddCommandParser`.
+* `AddCommandParser#parse()` parses the user input and returns an `AddCommand`
+ object for execution.
-The `Storage` component,
-* can save both address book data and user preference data in JSON format, and read them back into corresponding objects.
-* inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed).
-* depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`)
+Given below is an example usage scenario outlining how the `add` [command](#glossary)
+behaves at each step.
-### Common classes
+**Step 1.** The user executes
-Classes used by multiple components are in the `seedu.addressbook.commons` package.
+```shell
+add n/Jane Street r/Full Stack Developer c/Summer 2024
+```
---------------------------------------------------------------------------------------------------------------------
+This [command](#glossary) adds a new `InternApplication` into the `InternTracker`.
-## **Implementation**
+
+#### Design Considerations
+
+**Aspect: How sorting is done**
+
+* **Alternative 1 (current choice):** Wrap the existing `FilteredList` in
+ a `SortedList`.
+ * Pros: More flexible, as we can both sort and filter without modifying the
+ original `UniqueApplicationList`.
+* **Alternative 2:** Sort the applications in the `UniqueApplicationList` in
+ the `InternTracker`.
+ * Cons: Requires us to revert the sorting done by
+ the `UniqueApplicationList` before saving the data to
+ preserve the initial order in which the intern applications are added.
+
+**Aspect: Comparator**
+
+* **Alternative 1:** Use a `Comparator
+
+
-
+
+ 
+
+