Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
tkhahns authored Nov 12, 2024
2 parents 716993b + 85a1b47 commit 4c60fbe
Show file tree
Hide file tree
Showing 10 changed files with 115 additions and 69 deletions.
1 change: 1 addition & 0 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Display | Name | Github Profile | Portfolio

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:

![](./team/Ryan.jpeg) | Ryan Fong | [Github](https://github.com/CT9ARyan) | [Portfolio](./team/ct9aryan.md)

Display | Name | Github Profile | Portfolio
Expand Down
18 changes: 11 additions & 7 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Customer name : John
Age : 18
Contact Number : 95382572
```

---
### Removing a User from the Database: `remove-user`

Removes a customer from the customer list.
Expand All @@ -129,7 +129,7 @@ Removes a customer from the customer list.

* `CUSTOMER_NAME` : `STRING`.
* `CUSTOMER_NAME` must match an existing customer in the database.
* `CUSTOMER_NAME` is not case sensitive. 'John' and 'john' mean the same customer.
* `CUSTOMER_NAME` is not case-sensitive. 'John' and 'john' mean the same customer.

**Example of usage:**
`remove-user /u John`
Expand All @@ -138,6 +138,7 @@ Removes a customer from the customer list.
```
John has been removed from customer list
```
---
### Removing all Users from the Database: `remove-all-users`

Removes all customers from the customer list.
Expand All @@ -151,6 +152,7 @@ Removes all customers from the customer list.
```
All customers removed!!!
```
---
### Listing All Users: `list-users`

Lists all customers in the customer list in this format for each customer:
Expand Down Expand Up @@ -231,8 +233,9 @@ All cars removed!!!
### Listing All Cars: `list-cars`

Lists all the cars owned by the company, sorted according to the price of renting the car for a day.
The format for the each car in the list is:
Car Model | License PLate Number | Price of Rental (Per Day) | Availability (for Rental) | Price Category | Median Price of Cars in Fleet
The format for each car in the list is:
Car Model | License PLate Number | Price of Rental (Per Day) | Availability (for Rental) | Price Category |
Median Price of Cars in Fleet

**Format:** `list-cars`

Expand Down Expand Up @@ -311,16 +314,16 @@ It means that when a customer and a car are in a transaction, either that custom
- `LICENSE_PLATE_NUMBER` must match an existing car in the database. This is unique as the program will not allow 2 cars to have the same license plate number.


- `/u` identifier specifies the name of the customer.
- `/u` identifier specifies the name of the customer.
- `CUSTOMER_NAME` must match an existing customer in the database. This is unique as the program will not allow 2 customers to have the same name.


- `/d` identifier specifies the duration of the rental in days.
- `DURATION` must be an integer between 1 to 365 (inclusive). This allows the rental companies to handle rental transactions from 1 day to 365 days (a year).
- `DURATION` must be an integer between 1 and 365 (inclusive). This allows the rental companies to handle rental transactions from 1 day to 365 days (a year).


- `/s` identifier specifies the start date of the rental.
- `START_DATE` is in the format of [dd-MM-yyyy], accepting integers input only. It must be a valid date in the calender.
- `START_DATE` is in the format of [dd-MM-yyyy], accepting integers input only. It must be a valid date in the calendar.

**Example:**
`add-tx /c SZZ1579D /u John /d 15 /s 11-05-2025`
Expand Down Expand Up @@ -494,6 +497,7 @@ The transactions are displayed in the same format as list-txs.
**Format:** `find-txs-by-customer /u [CUSTOMER_NAME]`

- `/u` identifier specifies the Customer Name.

- `CUSTOMER_NAME` must partially match an existing customer in the customer list. This is not case-sensitive, 'john' and 'John' is the same, and 'john' input can search for the user 'John Doe', which contains 'John'.

**Example:**
Expand Down
Empty file.
Binary file added docs/team/Aaron.JPG
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/team/Ryan.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 0 additions & 44 deletions docs/team/SemiColonKen.md

This file was deleted.

2 changes: 2 additions & 0 deletions docs/team/aaronzz10.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Liu Hao's Project Portfolio Page

## Overview

CliRental is a CLI-based application designed to streamline the operations of car rental companies by efficiently managing customers, cars, and rental transactions. Written in Java with approximately 4k lines of code, CliRental replaces traditional pen-and-paper methods, offering car rental managers a reliable and user-friendly tool for handling large volumes of data.
Expand Down
35 changes: 18 additions & 17 deletions docs/team/rexkoh425.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,33 +43,34 @@ is a priority.

### <u>Code Contribution</u>

Code contributed: https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=rexkoh425&breakdown=true
Click [here](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=rexkoh425&breakdown=true)
to view my code contributions for this project!!

### <u>Project management</u>

Managed releases v1.0 - v2.1 (3 releases) on GitHub.
Managed releases v1.0 - v2.1 (3 releases) on GitHub.<br>

### <u>Enhancements to existing features:</u>

1) Improved Junit test for CarFile , CustomerFile and TransactionFile.
* Achieve at least 80% coverage for Class, Method , Line and Branch for each class mentioned above.
2) Improved error handling of loading data from file to prevent malicious data from crashing the program.
3) Data loaded from file follows constraints as if the user had added the command through the command line.
1) Improved Junit test for CarFile , CustomerFile and TransactionFile. <br>
2) Achieve at least 80% coverage for Class, Method , Line and Branch for each class mentioned above.<br>
3) Improved error handling of loading data from file to prevent malicious data from crashing the program.<br>
4) Data loaded from file follows constraints as if the user had added the command through the command line.<br>

### <u>Documentation:</u>
#### User Guide:
Added documentation for the features e.g. add-user and list-cars.
Added documentation to inform user of file loading.
Added user stories for add-user , list-cars
Added documentation for the features e.g. add-user and list-cars.<br>
Added documentation to inform user of file loading.<br>
Added user stories for add-user , list-cars<br>

#### Developer Guide:
1) Added implementation details of the adding customer details e.g. AddCustomerSequence.png.
2) Added implementation details of listing cars e.g. ListCarsSequence.png.
3) Added implementation details of file saving e.g. CarFileLoader.png & FileHandlerClassDiagram.png.
4) Updated NFR.
5) Added overall architecture diagram.
6) Include manual testing instructions.
1) Added implementation details of the adding customer details e.g. AddCustomerSequence.png.<br>
2) Added implementation details of listing cars e.g. ListCarsSequence.png.<br>
3) Added implementation details of file saving e.g. CarFileLoader.png & FileHandlerClassDiagram.png.<br>
4) Updated NFR.<br>
5) Added overall architecture diagram.<br>
6) Include manual testing instructions.<br>

### Community:
PRs reviewed (with non-trivial review comments): #68, #95, #110.
Reported bugs and suggestions for other teams in the class in peer DG review.
PRs reviewed (with non-trivial review comments): #68, #95, #110.<br>
Reported bugs and suggestions for other teams in the class in peer DG review.<br>
82 changes: 82 additions & 0 deletions docs/team/semicolonken.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Kenneth Tan - Project Portfolio Page

## Project: CliRental

CliRental is a straightforward, user-friendly application designed to help manage car rental operations efficiently.
Built with Java, this app allows users to track rental transactions, manage customer information,
and monitor car availability through a series of command-line commands. Key functionalities include
adding and removing customers, logging rental transactions, checking car availability,
and marking transactions as completed. Designed for quick access and ease of use,
this app is ideal for small to mid-sized rental services looking to streamline operations without a complex interface.

## Summary of Contributions

### <u>Features added</u>

`Feature 1` : Add the ability to remove customers details from the database.

* What it does : Allows user to remove a customer from our database.
* Justification: Customer details such as contact number can change, removal of customers allow the updated information
to be added afterward. It is also important to allow removal when details have been entered wrongly.
* Highlights: This command allows user to remove customer which is the building blocks for our application. Without the
ability to remove customers , the app would not achieve its intended use.

`Feature 2` : Add the ability to add a rental transaction into the database

* What it does : Allows user to add a rental transaction into the database using information from the car and the customer
* Justification: To allow management of rental transaction, it is essential to add a rental transaction into the database.
This allows the user to keep a record of all rental transactions that have occurred which can then be view later on.
* Highlights: This command allows user to add a rental transaction which is the part of the main feature for our
application, rental management Without the ability to add transaction, the app would not serve its purpose.
* Difficulty of task: It is tedious to make sure that the transactionID is only generated when a valid transaction
has been successfully added and the transactionID is generated incrementally but not randomly. There is a need to have a
counter to increment the ID but the counter will not be stored when the program exit as the program only stores the
transactionID. It is necessary to compare the transactionID from the transactionData store and
update the transactionCounter which was not stored to match the saved file.


### <u>Enhancements to existing features:</u>
* Worked with rexkoh425 to save Transaction ID
* Added case-insensitive features for some commands, e.g. remove-user and add-tx
* Added junittest for for customer removal

### <u>Documentation:</u>
#### User Guide:
Added documentation for the features e.g. remove-user and list completed transactions.
### Adding a Transaction: `add-tx`

Adds a new rental transaction to the system.

To add transaction bearing either an existing license plate number and/or customer name, all previous transactions containing either both or one of the parameter must be either marked as completed or be removed from the transaction list.

**Format:** `add-tx /c [LICENSE_PLATE_NUMBER] /u [CUSTOMER_NAME] /d [DURATION] /s [START_DATE: dd-MM-yyyy]`

- `/c` identifier specifies the license plate number of the car the customer wants to rent.
- `LICENSE_PLATE_NUMBER` must match an existing car in the database. This is unique as the program will not allow 2 cars to have the same license plate number.


- `/u` identifier specifies the name of the customer.
- `CUSTOMER_NAME` must match an existing customer in the database. This is unique as the program will not allow 2 customers to have the same name.


- `/d` identifier specifies the duration of the rental in days.
- `DURATION` must be an integer between 1 and 365 (inclusive). This allows the rental companies to handle rental transactions from 1 day to 365 days (a year).


- `/s` identifier specifies the start date of the rental.
- `START_DATE` is in the format of [dd-MM-yyyy], accepting integers input only. It must be a valid date in the calendar.

**Example:**
`add-tx /c SZZ1579D /u John /d 15 /s 11-05-2025`

**Sample Response:**
```
Transaction added:
[ ] TX2 | SZZ1579D | John | 15 days
Start Date: 11-05-2025 | End Date: 26-05-2025
```
Added sample outputs to match the latest release

### <u>Code Contribution</u>

Code contributed: https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=SemiColonKen&breakdown=true
2 changes: 1 addition & 1 deletion text-ui-test/runtest.bat
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ if not defined JAR_FILE (
REM Run the Java application and redirect input/output
java -jar "%JAR_FILE%" < input.txt > ACTUAL.TXT

REM Convert line endings to Unix format for comparison
REM Use PowerShell to convert line endings
powershell -Command "(Get-Content -Path 'EXPECTED.TXT') | Set-Content -NoNewline -Path 'EXPECTED-UNIX.TXT'"
powershell -Command "(Get-Content -Path 'ACTUAL.TXT') | Set-Content -NoNewline -Path 'ACTUAL.TXT'"

Expand Down

0 comments on commit 4c60fbe

Please sign in to comment.