From b76cafa0cae5277e67262f28e066a1d98f1871df Mon Sep 17 00:00:00 2001 From: Razansalam Date: Sun, 24 May 2026 11:00:38 +0400 Subject: [PATCH 1/4] Build and package the application as a runnable .jar file using Maven,Done --- pom.xml | 65 +++++++++----- .../OraclequantapiApplication.java | 3 +- .../controller/ConversionController.java | 24 ++++++ .../controller/HistoryController.java | 68 +++++++++++++++ .../dto/ConversionResponse.java | 84 +++++++++++++++++++ .../oraclequantapi/model/HistoryRecord.java | 28 +++++++ .../repository/HistoryRepository.java | 9 ++ .../service/ConversionService.java | 34 ++++++++ .../service/HistoryService.java | 50 +++++++++++ .../util/MeasurementParser.java | 47 +++++++++++ src/main/resources/application.properties | 14 ++++ { | 0 12 files changed, 405 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/controller/ConversionController.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/controller/HistoryController.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/dto/ConversionResponse.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/model/HistoryRecord.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/repository/HistoryRepository.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/service/ConversionService.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/service/HistoryService.java create mode 100644 src/main/java/com/oraclequantapi/oraclequantapi/util/MeasurementParser.java create mode 100644 { diff --git a/pom.xml b/pom.xml index 20909d2..70cf73e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,54 +1,79 @@ - + 4.0.0 + org.springframework.boot spring-boot-starter-parent - 3.5.14 - + 3.2.0 + + com.oraclequantapi oraclequantapi 0.0.1-SNAPSHOT - - - - - - - - - - - - - - - + oraclequantapi + OracleQuant PKC API + 17 + + + org.springframework.boot spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + com.oracle.database.jdbc + ojdbc11 + 23.3.0.23.09 + + + + + org.projectlombok + lombok + true + + + org.springframework.boot spring-boot-starter-test test + + pkc-api org.springframework.boot spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + - + \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/OraclequantapiApplication.java b/src/main/java/com/oraclequantapi/oraclequantapi/OraclequantapiApplication.java index 5e28689..92e0332 100644 --- a/src/main/java/com/oraclequantapi/oraclequantapi/OraclequantapiApplication.java +++ b/src/main/java/com/oraclequantapi/oraclequantapi/OraclequantapiApplication.java @@ -7,7 +7,8 @@ public class OraclequantapiApplication { public static void main(String[] args) { - SpringApplication.run(OraclequantapiApplication.class, args); + SpringApplication.run + (OraclequantapiApplication.class, args); } } diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/controller/ConversionController.java b/src/main/java/com/oraclequantapi/oraclequantapi/controller/ConversionController.java new file mode 100644 index 0000000..a2194f9 --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/controller/ConversionController.java @@ -0,0 +1,24 @@ +package com.oraclequantapi.oraclequantapi.controller; + +import com.oraclequantapi.oraclequantapi.service.ConversionService; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/api") +public class ConversionController { + + private final ConversionService conversionService; + + public ConversionController(ConversionService conversionService) { + this.conversionService = conversionService; + } + + @GetMapping("/convert-measurements") + public List convert( + @RequestParam String input, + HttpServletRequest request) { + return conversionService.convert(input, request.getRemoteAddr()); + } +} \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/controller/HistoryController.java b/src/main/java/com/oraclequantapi/oraclequantapi/controller/HistoryController.java new file mode 100644 index 0000000..de777fc --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/controller/HistoryController.java @@ -0,0 +1,68 @@ +package com.oraclequantapi.oraclequantapi.controller; + +import com.oraclequantapi.oraclequantapi.model.HistoryRecord; +import com.oraclequantapi.oraclequantapi.service.HistoryService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/history") + +public class HistoryController { + + private final HistoryService historyService; + + public HistoryController(HistoryService historyService) { + this.historyService = historyService; + } + + //Get all records + //http://localhost:8080/history + @GetMapping + public List getAll (){ + return historyService.getAll(); + } + + //Get one record by id + // http://localhost:8080/history/1 + @GetMapping("/{id}") + public ResponseEntitygetById(@PathVariable Long id){ + return historyService.getById(id) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + + } + + //put - full update by ID + //http://localhost:8080/history/1 + + @PutMapping("/{id}") + public ResponseEntity put( + @PathVariable Long id, + @RequestBody HistoryRecord record) { + return ResponseEntity.ok(historyService.update(id, record)); + } + + //patch - partial update by ID + //http://localhost:8080/history/1 + @PatchMapping("/{id}") + public ResponseEntity patch( + @PathVariable Long id, + @RequestBody HistoryRecord record) { + return ResponseEntity.ok(historyService.update(id, record)); + } + + + + //DELETE - clear all history + //http://localhost:8080/history + @DeleteMapping + public ResponseEntity deleteAll() { + + historyService.deleteAll(); + + return ResponseEntity.ok("all records History deleted"); + } +} diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/dto/ConversionResponse.java b/src/main/java/com/oraclequantapi/oraclequantapi/dto/ConversionResponse.java new file mode 100644 index 0000000..fb94613 --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/dto/ConversionResponse.java @@ -0,0 +1,84 @@ +package com.oraclequantapi.oraclequantapi.dto; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +public class ConversionResponse { + + private String fromCurrency; + private String toCurrency; + + private BigDecimal amount; + private BigDecimal convertedAmount; + private BigDecimal exchangeRate; + + + private LocalDateTime timestamp; + + public ConversionResponse(){ + + } + public ConversionResponse(String fromCurrency, + String toCurrency, + BigDecimal amount, + BigDecimal convertedAmount, + BigDecimal exchangeRate, + LocalDateTime timestamp){ + + this.fromCurrency = fromCurrency; + this.toCurrency = toCurrency; + this.amount = amount; + this.convertedAmount = convertedAmount; + this.exchangeRate = exchangeRate; + this.timestamp = timestamp; + } + + public String getFromCurrency(){ + return fromCurrency; + } + + public void setFromCurrency(String fromCurrency){ + this.fromCurrency = fromCurrency; + } + + public String getToCurrency(){ + return toCurrency; + + } + + public void setToCurrency(String toCurrency){ + this.toCurrency = toCurrency; + } + + public BigDecimal getAmount() { + return amount; + + } + + public void setAmount(BigDecimal amount){ + this.amount = amount; + } + public BigDecimal getConvertedAmount() { + return convertedAmount; + } + + public void setConvertedAmount(BigDecimal convertedAmount) { + this.convertedAmount = convertedAmount; + } + + public BigDecimal getExchangeRate() { + return exchangeRate; + } + + public void setExchangeRate(BigDecimal exchangeRate) { + this.exchangeRate = exchangeRate; + } + + public LocalDateTime getTimestamp() { + return timestamp; + } + + public void setTimestamp(LocalDateTime timestamp) { + this.timestamp = timestamp; + } +} diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/model/HistoryRecord.java b/src/main/java/com/oraclequantapi/oraclequantapi/model/HistoryRecord.java new file mode 100644 index 0000000..ec6a493 --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/model/HistoryRecord.java @@ -0,0 +1,28 @@ +package com.oraclequantapi.oraclequantapi.model; + +import jakarta.persistence.*; +import lombok.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "history_records") +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class HistoryRecord { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "history_seq") + @SequenceGenerator(name = "history_seq", sequenceName = "HISTORY_RECORDS_SEQ", allocationSize = 1) + private Long id; + + private LocalDateTime timestamp; + private String sourceIpAddress; + + @Column(length = 4000) + private String input; + + @Column(length = 4000) + private String output; +} \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/repository/HistoryRepository.java b/src/main/java/com/oraclequantapi/oraclequantapi/repository/HistoryRepository.java new file mode 100644 index 0000000..ad02e0a --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/repository/HistoryRepository.java @@ -0,0 +1,9 @@ +package com.oraclequantapi.oraclequantapi.repository; + +import com.oraclequantapi.oraclequantapi.model.HistoryRecord; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface HistoryRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/service/ConversionService.java b/src/main/java/com/oraclequantapi/oraclequantapi/service/ConversionService.java new file mode 100644 index 0000000..d6ca7d5 --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/service/ConversionService.java @@ -0,0 +1,34 @@ +package com.oraclequantapi.oraclequantapi.service; + +import com.oraclequantapi.oraclequantapi.model.HistoryRecord; +import com.oraclequantapi.oraclequantapi.repository.HistoryRepository; +import com.oraclequantapi.oraclequantapi.util.MeasurementParser; +import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class ConversionService { + + private final HistoryRepository historyRepository; + + public ConversionService(HistoryRepository historyRepository) { + this.historyRepository = historyRepository; + } + + public List convert(String input, String sourceIp) { + + // Step 1 — run the algorithm + List result = MeasurementParser.parse(input); + + // Step 2 — save every request to Oracle XE + HistoryRecord record = new HistoryRecord(); + record.setTimestamp(LocalDateTime.now()); + record.setSourceIpAddress(sourceIp); + record.setInput(input); + record.setOutput(result.toString()); + historyRepository.save(record); + + return result; + } +} \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/service/HistoryService.java b/src/main/java/com/oraclequantapi/oraclequantapi/service/HistoryService.java new file mode 100644 index 0000000..0e429b7 --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/service/HistoryService.java @@ -0,0 +1,50 @@ +package com.oraclequantapi.oraclequantapi.service; + +import com.oraclequantapi.oraclequantapi.model.HistoryRecord; +import com.oraclequantapi.oraclequantapi.repository.HistoryRepository; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; +import org.springframework.web.server.ResponseStatusException; +import java.util.List; +import java.util.Optional; + +@Service +public class HistoryService { + + private final HistoryRepository repository; + + public HistoryService(HistoryRepository repository) { + this.repository = repository; + } + + //get all + public List getAll() { + return repository.findAll(); + } + + //get by id + public Optional getById(Long id) { + return repository.findById(id); + } + + //put / patch - update by ID + //null fields are skipped (suppoer both full and partial update) + + public HistoryRecord update(Long id, HistoryRecord updated) { + return repository.findById(id).map(record -> { + if (updated.getSourceIpAddress() != null) + record.setSourceIpAddress(updated.getSourceIpAddress()); + if (updated.getInput() != null) + record.setInput(updated.getInput()); + if (updated.getOutput() != null) + record.setOutput(updated.getOutput()); + return repository.save(record); + }).orElseThrow(() -> + new ResponseStatusException + (HttpStatus.NOT_FOUND, "Record not found: " + id)); + } + //delete all + public void deleteAll() { + repository.deleteAll(); + } +} \ No newline at end of file diff --git a/src/main/java/com/oraclequantapi/oraclequantapi/util/MeasurementParser.java b/src/main/java/com/oraclequantapi/oraclequantapi/util/MeasurementParser.java new file mode 100644 index 0000000..d6b4f9f --- /dev/null +++ b/src/main/java/com/oraclequantapi/oraclequantapi/util/MeasurementParser.java @@ -0,0 +1,47 @@ +package com.oraclequantapi.oraclequantapi.util; + +import java.util.ArrayList; +import java.util.List; + +public final class MeasurementParser { + + private MeasurementParser() {} + + public static List parse(String input) { + if (input == null || input.isEmpty()) { + throw new IllegalArgumentException("Input must not be null or empty."); + } + + List results = new ArrayList<>(); + int i = 0; + + while (i < input.length()) { + + long count = 0; + while (i < input.length()) { + char c = input.charAt(i++); + count += charValue(c); + if (c != 'z') break; + } + + long sum = 0; + for (int j = 0; j < count && i < input.length(); j++) { + long val = 0; + while (i < input.length()) { + char c = input.charAt(i++); + val += charValue(c); + if (c != 'z') break; + } + sum += val; + } + + results.add(sum); + } + + return results; + } + + public static long charValue(char c) { + return c == '_' ? 0L : (long)(c - 'a' + 1); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 99d0060..d5dea5f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,15 @@ spring.application.name=oraclequantapi + +# Oracle XE connection ? update username/password to match yours +spring.datasource.url=jdbc:oracle:thin:@localhost:1521/XEPDB1 +spring.datasource.username=system +spring.datasource.password=29999login +spring.datasource.driver-class-name=oracle.jdbc.OracleDriver + +# Hibernate ? auto creates the table on first run +spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.OracleDialect +spring.jpa.properties.hibernate.format_sql=true + +server.port=8080 \ No newline at end of file diff --git a/{ b/{ new file mode 100644 index 0000000..e69de29 From 95b17239fc074f23896a43c24f4aaf6bc4b6739f Mon Sep 17 00:00:00 2001 From: Razansalam Date: Sun, 24 May 2026 16:45:12 +0400 Subject: [PATCH 2/4] Add README with API documentation --- README.md | 221 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 160 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index b1cccfd..5bd6586 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,160 @@ -## Submission Instructions - -To submit your Oracle JAVA Spring Boot Maven project as a solution, please follow these steps: - -### Step 1: Install git on your PC -- Install "git" as shown in this tutorial: [How to install git](https://youtu.be/iYkLrXobBbA?si=_l0haibv_X9NpIjJ) -- Open command prompt and run - ```bash - git version - ``` -- If you see the version, then git is successfully installed. - -### Step 2: Fork the Repository -- Navigate to [this repository](https://github.com/CodelineAtyab/oraclequantapi) provided by Codeline. -- Click on the "Fork" button at the top-right corner of the page to create a copy of the repository under your own GitHub account. - -### Step 3: Clone the Forked Repository -- Open your terminal or command prompt. -- Clone the forked repository to your local machine using the following command: - ```bash - git clone https://github.com/your-username/repo-name.git - ``` - -### Step 4: Create a new branch -- Navigate to the cloned repository directory - ```bash - cd repo-name - ``` -- Create a new branch for your code submissions (Replace your-name with your name in your-name-submission-branch): - ```bash - git checkout -b your-name-submission-branch - ``` - - -### Step 5: Add Your Code -- Implement the API - -### Step 6: Commit your changes -- Run the following commands in order to commit your changes: - ```bash - git add * - git commit -m "Meaningful commit message here" - ``` - -### Step 7: Push Your Branch to GitHub -- Run the following commands to upload the changes to the forked github repository (Replace your-name with your name in your-name-submission-branch): - ```bash - git push origin your-name-submission-branch - ``` - -### Step 8: Create a Pull Request -- Go to your forked repository on GitHub. -- You should see a prompt to create a pull request. Click on "Compare & pull request". -- Provide a title and description for your pull request, then click "Create pull request". - -### Step 9: Notify Codeline -- Notify on slack that you have created a PR for your solution. - -## Note: If you face any issues in the process above, Please do the following: -- Watch [this youtube tutorial](https://www.youtube.com/watch?v=a_FLqX3vGR4) -- Contact Ikhlas or Atyab. +# Package Measurement Conversion API + +## Features +- Convert measurement strings to numeric package totals. +- Persist conversion history in Oracle XE Database. +- Built with Spring Boot and Oracle OpenJDK 17. +- Logging to `logs/` directory. + +## Prerequisites +- Oracle OpenJDK 17 installed. +- Oracle XE 21c Database running. +- Apache Maven 3.8+ installed. + +--- + +## Running the Application + +### Build the JAR +```bash +.\mvnw clean package -DskipTests +``` + +### Run the JAR +```bash +java -jar target/pkc-api.jar +``` + +### API available at + +http://localhost:8080/ +--- + +## Configuring the Database + +Edit `src/main/resources/application.properties`: + +```properties +spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1 +spring.datasource.username=system +spring.datasource.password=yourpassword +spring.datasource.driver-class-name=oracle.jdbc.OracleDriver +spring.jpa.hibernate.ddl-auto=update +server.port=8080 +``` + +--- + +## API Endpoints + +### Convert Measurements + +GET/http://192.168.100.7:8080/history/2 + +{ + "id": 2, + "timestamp": "2026-05-24T08:59:18.375786", + "sourceIpAddress": "0:0:0:0:0:0:0:1", + "input": "aa", + "output": "[1]" +} + +POST/http://192.168.100.7:8080/history/2 + +"timestamp": "2026-05-24T12:18:33.642+00:00", +"status": 405, +"error": "Method Not Allowed", +"path": "/history/2" +} + +PATCH/http://192.168.100.7:8080/history/ + +{ +"timestamp": "2026-05-24T12:19:48.149+00:00", +"status": 404, +"error": "Not Found", +"path": "/history/" +} + +PUT/http://localhost:8080/history/1 +{ +"id": 1, +"timestamp": "2026-05-24T08:58:56.620227", +"sourceIpAddress": "0:0:0:0:0:0:0:1", +"input": "abbcc", +"output": "[2, 6]" +} + +http://192.168.100.7:8080/api/convert-measurements?input=abbcc +[2,6] + +DELETE/history + +--- Example Response: +```json +[ + { + "id": 1, + "timestamp": "2024-05-24T10:30:00", + "sourceIpAddress": "127.0.0.1", + "input": "abbcc", + "output": "[2, 6]" + } +] +``` + +--- + +## Deploy on Oracle Linux via SSH + +### 1. Copy JAR to Oracle Linux +```bash +scp target/pkc-api.jar razan@192.168.100.7:/home/razan/ +``` + +### 2. SSH into server +```bash +ssh razan@192.168.100.7 +``` + +### 3. Install Java 17 +```bash +sudo dnf install -y java-17-openjdk-headless +``` + +### 4. Create app folder and move JAR +```bash +sudo mkdir -p /opt/pkc-api +sudo cp /home/razan/pkc-api.jar /opt/pkc-api/ +``` + +### 5. Create configuration file +```bash +sudo tee /opt/pkc-api/application.properties << 'EOF' +spring.datasource.url=jdbc:oracle:thin:@//192.168.100.11:1521/XEPDB1 +spring.datasource.username=system +spring.datasource.password=yourpassword +spring.datasource.driver-class-name=oracle.jdbc.OracleDriver +spring.jpa.hibernate.ddl-auto=update +server.port=8080 +EOF +``` + +### 6. Open firewall port +```bash +sudo firewall-cmd --permanent --add-port=8080/tcp +sudo firewall-cmd --reload +``` + +### 7. Run the application +```bash +java -jar /opt/pkc-api/pkc-api.jar \ + --spring.config.location=file:/opt/pkc-api/application.properties +``` + +### 8. Test the deployment +```bash +curl "http://http://192.168.100.7:8080/api/convert-measurements?input=abcdabcdab" +``` + +--- Response:[2,7,7] From f37030427edbf8f79b18a97f4b0244b59e03b064 Mon Sep 17 00:00:00 2001 From: Razansalam Date: Sun, 24 May 2026 16:57:21 +0400 Subject: [PATCH 3/4] Add full CHANGELOG --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..fb7e891 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,40 @@ +# CHANGELOG + +## version [1.0.0] - 2026-05-24 +### Added +- Initial release of OracleQuant Package Measurement Conversion API. +- Core algorithm for parsing measurement strings (MeasurementParser.java). +- GET /api/convert-measurements endpoint for converting input strings. +- Support for multi-character z-prefix number encoding (e.g. "zza" = 53). +- Support for zero-sentinel '_' character (value = 0, terminates number). +- Persist all conversion requests to Oracle XE Database automatically. +- GET /history endpoint to fetch all history records. +- GET /history/{id} endpoint to fetch a specific history record. +- PUT /history/{id} endpoint for full update of a history record. +- PATCH /history/{id} endpoint for partial update of a history record. +- DELETE /history endpoint to clear all history records. +- HistoryRecord JPA entity with id, timestamp, sourceIpAddress, input, output. +- Spring Boot 3.2.0 with Oracle OpenJDK 17. +- Maven build system producing pkc-api.jar. +- Oracle JDBC driver (ojdbc11) for Oracle XE connection. +- Hibernate ORM with GenerationType.SEQUENCE for Oracle compatibility. +- Logging to console and logs/ directory with 7-day rolling files via Logback. +- README.md with setup, database config, and API documentation. +- CHANGELOG.md file to track project versions and changes. +- Deployed and running on Oracle Linux via SSH. +- Firewall port 8080 opened on Oracle Linux. +- Application configured as a background service via systemd. + +### Fixed +- Fixed jakarta.persistence import (lowercase j) in HistoryRecord.java. +- Fixed GenerationType from IDENTITY to SEQUENCE for Oracle XE compatibility. +- Fixed MeasurementParser — added full parse() method with z-accumulation. +- Fixed ConversionController — removed HistoryRepository direct injection. +- Fixed return type from List to List in ConversionService. +- Fixed HistoryService — added sourceIpAddress field to update method. +- Fixed HistoryController — added proper 404 response for missing records. +- Fixed application.properties — corrected Oracle dialect configuration. +- Fixed project JDK from OpenJDK 25 to OpenJDK 17 in IntelliJ. +- Fixed pom.xml — merged duplicate build sections, added finalName pkc-api. +- Fixed deployment — corrected application.properties path on Oracle Linux. +- Fixed datasource driver-class-name typo (deiver → driver) on Oracle Linux. \ No newline at end of file From 73f2a3b8c75cac28dd26a830ddcb43dd727d9e42 Mon Sep 17 00:00:00 2001 From: Razansalam Date: Sun, 24 May 2026 17:04:07 +0400 Subject: [PATCH 4/4] add application.properties --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d5dea5f..6b1b852 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,4 +12,4 @@ spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.OracleDialect spring.jpa.properties.hibernate.format_sql=true -server.port=8080 \ No newline at end of file +server.port \ No newline at end of file