diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 938958b100..c92ded91a4 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -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 diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 84b27ab67a..b8a1511b27 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -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. @@ -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` @@ -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. @@ -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: @@ -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` @@ -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` @@ -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:** diff --git a/docs/diagrams/KennethRemoveCustomerDiagram.puml b/docs/diagrams/KennethRemoveCustomerDiagram.puml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/team/Aaron.JPG b/docs/team/Aaron.JPG new file mode 100644 index 0000000000..2562edc840 Binary files /dev/null and b/docs/team/Aaron.JPG differ diff --git a/docs/team/Ryan.jpg b/docs/team/Ryan.jpg new file mode 100644 index 0000000000..fce9cb9e71 Binary files /dev/null and b/docs/team/Ryan.jpg differ diff --git a/docs/team/SemiColonKen.md b/docs/team/SemiColonKen.md deleted file mode 100644 index dddba341db..0000000000 --- a/docs/team/SemiColonKen.md +++ /dev/null @@ -1,44 +0,0 @@ -# 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 - -### Features added - -`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 afterwards. It 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 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. - - -### Enhancements to existing features: -* Worked with rexkoh425 to save Transaction ID -* Added case insensitive features for some commands, e.g remove-user and add-tx - -### Documentation: -#### User Guide: -Added documentation for the features e.g. remove-user and list completed transactions. -Added sample outputs to match the latest release - -### Code Contribution - -Code contributed: https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=SemiColonKen&breakdown=true diff --git a/docs/team/aaronzz10.md b/docs/team/aaronzz10.md index 418fcecb36..b28985729f 100644 --- a/docs/team/aaronzz10.md +++ b/docs/team/aaronzz10.md @@ -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. diff --git a/docs/team/rexkoh425.md b/docs/team/rexkoh425.md index 9470ff9548..4dbb957c70 100644 --- a/docs/team/rexkoh425.md +++ b/docs/team/rexkoh425.md @@ -43,33 +43,34 @@ is a priority. ### Code Contribution -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!! ### Project management -Managed releases v1.0 - v2.1 (3 releases) on GitHub. +Managed releases v1.0 - v2.1 (3 releases) on GitHub.
### Enhancements to existing features: -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.
+2) Achieve at least 80% coverage for Class, Method , Line and Branch for each class mentioned above.
+3) Improved error handling of loading data from file to prevent malicious data from crashing the program.
+4) Data loaded from file follows constraints as if the user had added the command through the command line.
### Documentation: #### 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.
+Added documentation to inform user of file loading.
+Added user stories for add-user , list-cars
#### 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.
+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.
### 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.
+Reported bugs and suggestions for other teams in the class in peer DG review.
diff --git a/docs/team/semicolonken.md b/docs/team/semicolonken.md new file mode 100644 index 0000000000..2faf47ba83 --- /dev/null +++ b/docs/team/semicolonken.md @@ -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 + +### Features added + +`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. + + +### Enhancements to existing features: +* 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 + +### Documentation: +#### 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 + +### Code Contribution + +Code contributed: https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=SemiColonKen&breakdown=true diff --git a/text-ui-test/runtest.bat b/text-ui-test/runtest.bat index 975a08339d..51c610ef79 100644 --- a/text-ui-test/runtest.bat +++ b/text-ui-test/runtest.bat @@ -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'"