Skip to content

Commit

Permalink
Merge pull request #245 from AaronZZ10/master
Browse files Browse the repository at this point in the history
update ppp and dg
  • Loading branch information
AaronZZ10 authored Nov 12, 2024
2 parents a7baa3e + 06f4873 commit 4c15de9
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 7 deletions.
18 changes: 18 additions & 0 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,24 @@ The implementation of these features is encapsulated within the `TransactionList

##### **a. Class-Level Design**

**`Transaction` Class:**

- **Responsibilities:**
- Represents a single car rental transaction, encapsulating details like transaction ID, car license plate, customer, rental duration, start and end dates, and completion status.
- Provides methods to manipulate transaction data, including setting a transaction ID, marking the transaction as completed, and generating string representations for display and file storage.

- **Key Methods:**
- `isValidTxId(String transactionId)`: Validates the format of a transaction ID.
- `setTransactionId(String transactionId)`: Sets a unique transaction ID.
- `setCompleted(boolean completed)`: Marks the transaction as completed or incomplete.
- `toString()`: Provides a formatted string for displaying transaction details.
- `toFileString()`: Outputs a file-friendly string for persisting transaction data.

- **Design Considerations:**
- **Data Integrity**: Ensures that the end date is calculated automatically based on the start date and duration, minimizing the risk of manual input errors.
- **Encapsulation**: Private fields with controlled access ensure data consistency, allowing only authorized modifications.
- **Readability**: The `formatDuration()` and `toString()` methods provide user-friendly representations of transaction data, making it easy to read and understand both on-screen and in storage.

**`TransactionList` Class:**

- **Responsibilities:**
Expand Down
55 changes: 48 additions & 7 deletions docs/team/aaronzz10.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
# 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.
## Project: CLIRental

## Summary of Contributions
## Overview

### <u>Features Added</u>
**CliRental** is a command-line application designed for car rental managers to efficiently
manage and track customers, cars, and rental transactions in a centralized platform.
Built to replace traditional pen-and-paper methods, CliRental provides a user-friendly,
reliable solution for handling large volumes of data, streamlining operations for managers
with quick data entry and tracking capabilities. Developed in Java with approximately
4,000 lines of code (LOC), this tool serves as an effective desktop app tailored to the
core needs of car rental businesses.

## Features Implemented
**Feature 1** : Implement Transaction Management Commands

- **What it does** : Introduces commands to manage rental transactions, including removing transactions, marking them as complete or incomplete, listing completed or uncompleted transactions, and finding transactions by customer.
Expand All @@ -33,6 +38,42 @@ CliRental is a CLI-based application designed to streamline the operations of ca
- **TransactionList Class Tests**: Verifies the integrity of the transaction list operations, including data consistency and correct handling of edge cases.
- **Automated Testing**: Integrates tests into the development workflow, enabling continuous verification of code changes and enhancing overall code quality.

### <u>Code Contribution</u>
**Feature 3** : Implement Comprehensive Input/Output (IO) Testing

- **What it does** : Conducts full IO testing for the application, verifying that commands entered via the CLI produce the expected outputs. Tests ensure that user interactions with features like transaction management and data listing work as designed and meet the application's functionality requirements.

- **Justification**: IO testing is critical for confirming that the application responds correctly to user commands, providing reliable and expected results. This testing approach validates the end-to-end functionality of the application from the user's perspective, ensuring a smooth and predictable user experience.

- **Highlights**:
- **Command Accuracy**: Tests cover all core commands, including transaction addition, removal, completion status toggling, and customer-specific searches, to confirm correct outputs for each operation.
- **End-to-End Verification**: Ensures that user commands execute successfully and return accurate, user-friendly information, maintaining data consistency throughout.
- **CLI Simulation**: Simulates actual CLI interactions to replicate real user scenarios, verifying the app’s robustness in handling various user inputs and sequences.

## <u>Code Contribution</u>

Code contributed: [AaronZZ10's Contributions](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=aaronzz10&breakdown=true)

## Documentation

### User Guide (UG) Contributions
- Added documentation for features:
- `list-users`
- `remove-tx`
- `mark-tx`
- `unmark-tx`
- `list-txs-completed`
- `list-txs-uncompleted`
- `find-txs-by-customer`

### Developer Guide (DG) Contributions
- Added overview for Transaction Completion Management and Retrieval Features
- Added class-level design for TransactionList and Transaction class

## Community

### Team-Based Task Contributions
- Improved code quality and documentation by organizing format, adding divider lines for readability, and creating a contents summary for the User Guide.
- Reviewed teammates' pull requests, providing feedback to enhance code quality and functionality.
- Approved pull requests as needed to support workflow and project progression.
- Identified bugs and suggested improvements in other teams' Developer Guides (DGs) during peer review.

Code contributed: [AaronZZ10's Contributions](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=aaronzz10&breakdown=true)

0 comments on commit 4c15de9

Please sign in to comment.