Skip to content

Latest commit

 

History

History
219 lines (192 loc) · 8.44 KB

README.md

File metadata and controls

219 lines (192 loc) · 8.44 KB

Java

SOFTWARE ENGINEERING ASSIGNMENT (ITB63-AS)

Java Webstore Backend Application

This repository contains the source code for a Java webstore backend application, designed as part of the ITB63-AS software engineering assignment. The application provides a suite of RESTful services to manage products, warehouses, and orders for an online store.

Credits

Creator

  • Davain Pablo Edwards

Environment Requirements

To run this application, you will need:

Getting Started

To get started with the Java Webstore Backend Application:

  1. Update the MySQL database connection: java-webstore-backend\rest-api\src\main\resources\application.properties

    and create the database via the warehouse_database_uuid_de.sql file.

  2. Navigate to the project directory (optional):

    cd java-webstore-backend/rest-api
    
  3. Build the project (optional):

    ./gradlew build  # For Unix/Linux/Mac
    gradlew.bat build  # For Windows
    
  4. Run the application (optional):

    ./gradlew bootRun  # For Unix/Linux/Mac
    gradlew.bat bootRun  # For Windows
    
  5. Run the REST-API with Visual Studio Code Extension Pack for Java and Gradle for Java Plugins and execute java-webstore-backend\rest-api\src\main\java\de\webstore\backend\Application.java

  6. Access Swagger API docs:

    http://localhost:8080/swagger-ui/index.html

Project Structure The project is structured as follows:

java-webstore-backend
├─ .git
├─ .gitignore
├─ .vscode
│  └─ settings.json
├─ assets
│  ├─ warehouse_database.db
│  ├─ warehouse_database_de.sql
│  ├─ warehouse_database_en.sql
│  ├─ warehouse_database_test.sql
│  └─ warehouse_database_uuid_de.sql
├─ README.md
└─ rest-api
   ├─ .gitignore
   ├─ .gradle
   │  ├─ 8.5
   │  │  ├─ checksums
   │  │  │  ├─ checksums.lock
   │  │  │  ├─ md5-checksums.bin
   │  │  │  └─ sha1-checksums.bin
   │  │  ├─ dependencies-accessors
   │  │  │  ├─ dependencies-accessors.lock
   │  │  │  └─ gc.properties
   │  │  ├─ executionHistory
   │  │  │  ├─ executionHistory.bin
   │  │  │  └─ executionHistory.lock
   │  │  ├─ fileChanges
   │  │  │  └─ last-build.bin
   │  │  ├─ fileHashes
   │  │  │  ├─ fileHashes.bin
   │  │  │  ├─ fileHashes.lock
   │  │  │  └─ resourceHashesCache.bin
   │  │  ├─ gc.properties
   │  │  └─ vcsMetadata
   │  ├─ buildOutputCleanup
   │  │  ├─ buildOutputCleanup.lock
   │  │  ├─ cache.properties
   │  │  └─ outputFiles.bin
   │  ├─ file-system.probe
   │  └─ vcs-1
   │     └─ gc.properties
   ├─ .vscode
   │  └─ settings.json
   ├─ build
   │  ├─ classes
   │  │  └─ java
   │  │     ├─ main
   │  │     │  └─ de
   │  │     │     └─ webstore
   │  │     │        └─ backend
   │  │     │           ├─ Application.class
   │  │     │           ├─ config
   │  │     │           │  └─ DatabaseConnection.class
   │  │     │           ├─ controller
   │  │     │           │  ├─ OrderController.class
   │  │     │           │  ├─ ProductController.class
   │  │     │           │  └─ WarehouseController.class
   │  │     │           ├─ dto
   │  │     │           │  ├─ OrderDTO.class
   │  │     │           │  ├─ PositionDTO.class
   │  │     │           │  ├─ ProductDTO.class
   │  │     │           │  ├─ ProductUpdateDTO.class
   │  │     │           │  └─ WarehouseDTO.class
   │  │     │           ├─ exception
   │  │     │           │  ├─ ErrorResponse.class
   │  │     │           │  ├─ InsufficientStockException.class
   │  │     │           │  ├─ OrderClosedException.class
   │  │     │           │  ├─ OrderNotFoundException.class
   │  │     │           │  ├─ PositionNotFoundException.class
   │  │     │           │  ├─ ProductInOrderException.class
   │  │     │           │  ├─ ProductNotFoundException.class
   │  │     │           │  └─ WarehouseNotFoundException.class
   │  │     │           └─ service
   │  │     │              ├─ OrderService.class
   │  │     │              ├─ ProductService.class
   │  │     │              └─ WarehouseService.class
   │  │     └─ test
   │  ├─ generated
   │  │  └─ sources
   │  │     ├─ annotationProcessor
   │  │     │  └─ java
   │  │     │     └─ main
   │  │     └─ headers
   │  │        └─ java
   │  │           └─ main
   │  ├─ resources
   │  │  └─ main
   │  │     └─ application.properties
   │  └─ tmp
   │     ├─ compileJava
   │     │  ├─ compileTransaction
   │     │  │  ├─ backup-dir
   │     │  │  └─ stash-dir
   │     │  │     ├─ OrderController.class.uniqueId0
   │     │  │     └─ OrderService.class.uniqueId1
   │     │  └─ previous-compilation-data.bin
   │     └─ compileTestJava
   │        └─ compileTransaction
   │           ├─ backup-dir
   │           └─ stash-dir
   │              └─ WarehouseServiceTest.class.uniqueId0
   ├─ build.gradle
   ├─ gradle
   │  └─ wrapper
   │     ├─ gradle-wrapper.jar
   │     └─ gradle-wrapper.properties
   ├─ gradlew
   ├─ gradlew.bat
   ├─ HELP.md
   ├─ settings.gradle
   └─ src
      ├─ main
      │  ├─ java
      │  │  └─ de
      │  │     └─ webstore
      │  │        └─ backend
      │  │           ├─ Application.java
      │  │           ├─ config
      │  │           │  └─ DatabaseConnection.java
      │  │           ├─ controller
      │  │           │  ├─ OrderController.java
      │  │           │  ├─ ProductController.java
      │  │           │  └─ WarehouseController.java
      │  │           ├─ dto
      │  │           │  ├─ OrderDTO.java
      │  │           │  ├─ PositionDTO.java
      │  │           │  ├─ ProductDTO.java
      │  │           │  ├─ ProductUpdateDTO.java
      │  │           │  └─ WarehouseDTO.java
      │  │           ├─ exception
      │  │           │  ├─ ErrorResponse.java
      │  │           │  ├─ InsufficientStockException.java
      │  │           │  ├─ OrderClosedException.java
      │  │           │  ├─ OrderNotFoundException.java
      │  │           │  ├─ PositionNotFoundException.java
      │  │           │  ├─ ProductInOrderException.java
      │  │           │  ├─ ProductNotFoundException.java
      │  │           │  └─ WarehouseNotFoundException.java
      │  │           └─ service
      │  │              ├─ OrderService.java
      │  │              ├─ ProductService.java
      │  │              └─ WarehouseService.java
      │  └─ resources
      └─ test
         └─ java
            └─ de
               └─ webstore
                  └─ backend

License This project is licensed under the GNU General Public License Version 3.

Copyright (c) 2024 Davain Pablo Edwards

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.