From 677efe61fad8f9db4cc0b3c7d7f394e55af689dd Mon Sep 17 00:00:00 2001 From: Sherwin Price Date: Fri, 26 Dec 2025 14:23:44 -0500 Subject: [PATCH] updates --- .vscode/settings.json | 9 ++- Api/src/resources/db/inventory.json | 10 ---- Api/src/resources/db/transactions.json | 18 +++--- OOP Project 2 DescriptionArtManagement.docx | Bin 22709 -> 0 bytes Project_DescriptionArtManagement.md | 63 ++++++++++++++++++++ Ui/build.gradle | 6 ++ 6 files changed, 86 insertions(+), 20 deletions(-) delete mode 100644 OOP Project 2 DescriptionArtManagement.docx create mode 100644 Project_DescriptionArtManagement.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 677058f..03cd05b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,12 @@ { "java.configuration.updateBuildConfiguration": "automatic", "java.debug.settings.onBuildFailureProceed": true, - "java.dependency.packagePresentation": "hierarchical" + "java.dependency.packagePresentation": "hierarchical", + "java.configuration.runtimes": [ + {"name":"JavaSE-25", + "path": "/usr/lib/jvm/java-25-openjdk", + "default": true + } + ], + "java.compile.nullAnalysis.mode": "automatic" } \ No newline at end of file diff --git a/Api/src/resources/db/inventory.json b/Api/src/resources/db/inventory.json index 8023062..86188d6 100644 --- a/Api/src/resources/db/inventory.json +++ b/Api/src/resources/db/inventory.json @@ -8,15 +8,5 @@ "price": 92.0, "title": "Windy Rowing", "type": "DRAWING" - }, - { - "Author": "Dave Janson", - "author": "Dave Janson", - "created": "2025-10-30T13:47:16.4776889-04:00[America/New_York]", - "description": "East Market Square find. Local Author.", - "id": "3269813598", - "price": 102.0, - "title": "Different day same thing", - "type": "PRINT" } ] \ No newline at end of file diff --git a/Api/src/resources/db/transactions.json b/Api/src/resources/db/transactions.json index 7a35a64..d51fbc4 100644 --- a/Api/src/resources/db/transactions.json +++ b/Api/src/resources/db/transactions.json @@ -1,7 +1,7 @@ [ { - "completed": "2025-10-30T13:55:22.069972-04:00[America/New_York]", - "created": "2025-10-30T13:55:22.069972-04:00[America/New_York]", + "completed": "2025-12-24T17:58:48.979740808-05:00[America/New_York]", + "created": "2025-12-24T17:58:48.979723067-05:00[America/New_York]", "customerId": "4659170390", "customerInventoryList": [ { @@ -17,15 +17,15 @@ { "Author": "Dave Janson", "author": "Dave Janson", - "created": "2025-10-30T13:47:16.4776889-04:00[America/New_York]", + "created": "2025-10-30T13:47:16.4766896-04:00[America/New_York]", "description": "East Market Square find. Local Author.", - "id": "3269813598", - "price": 102.0, - "title": "Different day same thing", - "type": "PRINT" + "id": "1829220534", + "price": 92.0, + "title": "Windy Rowing", + "type": "DRAWING" } ], - "id": "h3kaUzeDU8llUhCPsdPacg", - "totalPrice": 194.0 + "id": "LRlFXsGy8F0Vq6caT5hYKQ", + "totalPrice": 184.0 } ] \ No newline at end of file diff --git a/OOP Project 2 DescriptionArtManagement.docx b/OOP Project 2 DescriptionArtManagement.docx deleted file mode 100644 index 1fd3a7c4b472b375a1c4bfe6c241e2b5f87668ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22709 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 diff --git a/Project_DescriptionArtManagement.md b/Project_DescriptionArtManagement.md new file mode 100644 index 0000000..11086c4 --- /dev/null +++ b/Project_DescriptionArtManagement.md @@ -0,0 +1,63 @@ +OOP Project Description + +Requirements: +You are to design prototype software (stand-alone application loaded on business’s local computer) to manage art inventory and transactions. Your software will be used and called by User Interface (UI) that someone else will be designing. + +Your software will allow loading and managing art inventory and current transactions for the business. When the system starts up, UI may request to load the list of available art and/or current list of transactions by proving where to load from each or it may request the load to happen after the system is already up and running. + +For the prototype the data will be loaded and saved in text files on the local system (for the final product outside the scope of this project, server with database will be used). + +Note that UI will handle the login and authorization of who can change the inventory and access control is outside of the scope of the system you are designing. + +There are four different types of art in the inventory allowed: paintings, drawings, prints, and sculptures. Each art piece includes 10 digit id, price, date when created (year only), title of the art (e.g. “family on the beach”), description (max 500 characters), and author’s name. Paintings also include height in inches, width in inches, style (e.g. abstract, surrealism, impressionism, etc.), technique (e.g. oil, acrylic, watercolor, etc.), and category (history, portrait, genre, landscape, or still life). Drawings also include style ((e.g. abstract, surrealism, impressionism, etc.), technique (e.g. pastel, colored pencil, charcoal, etc.), and category (history, portrait, genre, landscape, or still life). Prints also include open edition type (canvas, paper, or photo) and category (history, portrait, genre, landscape, or still life). Sculpture also include material (e.g. stone, metal, ceramic, wood, glass, etc.) and weight in ounces. + +Art cannot exist without these values and they cannot be changed through this system. + +A customer of the business can buy one or more of the art pieces in a single transaction. Customer data will include first name, last name, mailing address, phone number, and email. All the data must have values at creation but it can be changed. + + + +Each transaction will include a unique transaction id generated by UI, customer data, art pieces to be bought, date of transaction, and transaction price. Transaction must have id, customer data, and at minimum one art piece at creation. All transaction data can be changed except id and can only be changed until the transaction is completed. + +The transaction price will include art price plus shipping costs. Transaction price and date will be set when the transaction is completed as requested by the customer. That is when the customer would pay but that is outside of the scope of the system. + +Transaction shipping cost will be calculated as follow: +(1) Basic shipping cost per art piece is $10.99 +(2) Sculpture will have additional cost based on weight: $0.20 per ounce +(3) Painting will have additional cost per height*width: + (a) less than 100 square inches add $5.99 + (b) between 100 and 300 square inches add $10.99 + (c) above 300 square inches add $15.99 + +Note that null transaction date means the transaction has not been completed yet. Art work is not removed from the inventory until the transaction is completed. If customer requests to complete the transaction but art work is not in available list, the transaction will fail to complete. Transaction can be removed if it is not completed. Once transaction is completed it cannot be changed nor removed. The transaction file will store both completed and not completed transactions. + +Your system must support the following functionality: +1. Add new art object to the inventory. Your manager must check that the art is not already in the inventory before adding +2. Remove art object from the inventory +3. Return a list of all art objects from inventory +3. Add a new transaction object to the list manager is handling +4. Calculate and return transaction price +5. Complete transaction +6. Remove transaction object +7. Format and return transaction data in print format +8. Retrieve and return transactions based on: + • customer email + • transaction date + • transaction id + • art id +9. Update inventory file(s) on local system +10. Update transaction file(s) on local system +11. Any other functionality needed to support the above requirements + + +Note: You can assume the number of current transactions and available art is small enough to load all into memory as needed. + +Your system will need the following user defined exceptions: +1. On adding or removing art if duplicate art exists on add or art not in inventory on remove throw unchecked user defined exception called InvalidArtOperationException when violation detected. The exception will extend RuntimeException. The exception message should indicate which operation was attempted and why failed. +2. On adding or removing transaction if duplicate transaction exists on add or transaction cannot be removed throw unchecked user defined exception called InvalidTransOperationException when violation detected. The exception will extend RuntimeException. The exception message should indicate which operation was attempted and why failed. +3. On complete transaction request if it cannot be completed, throw unchecked user defined exception called InvalidTransactionException when violation detected. The exception will extend RuntimeException. The exception message should indicate what operation was attempted and why exactly it failed. + +UI is outside the scope of your design but your system needs to have all the functionality it would need to satisfy the requirements. + +As you design the system, you need to make sure it is consistent and it only has the interfaces (constructors, attributes and methods) that are needed by the required functionality. You cannot arbitrarily add new functionality to the system. +* **** \ No newline at end of file diff --git a/Ui/build.gradle b/Ui/build.gradle index 0eeb3b2..14cfa53 100644 --- a/Ui/build.gradle +++ b/Ui/build.gradle @@ -29,6 +29,12 @@ repositories { mavenCentral() } +configurations { + all { + exclude group: 'org.apache.tomcat.embed', module: 'tomcat-embed-jasper-el' + } +} + dependencies { implementation 'io.netty:netty-common:4.2.8.Final' implementation 'org.springframework.boot:spring-boot-starter-webflux:4.0.0'