https://github.com/dpedwards/java-webstore-backend
Java Webstore backend application with REST architecture.
https://github.com/dpedwards/java-webstore-backend
gradle java junit rest-api springboot sql
Last synced: 2 months ago
JSON representation
Java Webstore backend application with REST architecture.
- Host: GitHub
- URL: https://github.com/dpedwards/java-webstore-backend
- Owner: dpedwards
- Created: 2024-02-23T22:56:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-28T09:17:31.000Z (about 2 years ago)
- Last Synced: 2025-04-05T02:13:30.696Z (about 1 year ago)
- Topics: gradle, java, junit, rest-api, springboot, sql
- Language: Java
- Homepage:
- Size: 1.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://www.java.com/de/download/faq/java17.xml)
# 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
- [Repository](https://github.com/dpedwards/java-webstore-backend)
#### Creator
- **Davain Pablo Edwards**
### Environment Requirements
To run this application, you will need:
- [Java 17](https://www.java.com/de/download/)
- [Visual Studio Code](https://code.visualstudio.com/download) (Recommended IDE)
### 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](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) and [Gradle for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle) 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.