Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
363e301
Create HistoryRecord entity class
AljolandaAlhandhali May 24, 2026
af3b81c
Add JPA entity and table mapping
AljolandaAlhandhali May 24, 2026
270f70f
Add primary key field
AljolandaAlhandhali May 24, 2026
6b29c34
Add timestamp field with database column mapping
AljolandaAlhandhali May 24, 2026
0a3f3bb
Add source IP address JSON mapping
AljolandaAlhandhali May 24, 2026
0321606
Add input and output large text fields
AljolandaAlhandhali May 24, 2026
221faff
Add constructors for JPA and object creation
AljolandaAlhandhali May 24, 2026
81e6397
Set timestamp automatically before saving
AljolandaAlhandhali May 24, 2026
9b48343
Add getId method
AljolandaAlhandhali May 24, 2026
1ed122b
Add getTimestamp method
AljolandaAlhandhali May 24, 2026
7636132
Add setTimestamp method
AljolandaAlhandhali May 24, 2026
489d050
Add getSourceIpAddress method
AljolandaAlhandhali May 24, 2026
087ddb3
Add setSourceIpAddress method
AljolandaAlhandhali May 24, 2026
63979df
Add getInput method
AljolandaAlhandhali May 24, 2026
73d0c56
Add setInput method
AljolandaAlhandhali May 24, 2026
df3c1e2
Add getOutput method
AljolandaAlhandhali May 24, 2026
1711e1a
Add setOutput method
AljolandaAlhandhali May 24, 2026
69a64ee
Complete HistoryRecord entity implementation
AljolandaAlhandhali May 24, 2026
d1b8405
Create HistoryRepository interface
AljolandaAlhandhali May 24, 2026
754af39
Import HistoryRecord entity into repository
AljolandaAlhandhali May 24, 2026
c48439c
Import JpaRepository from Spring Data JPA
AljolandaAlhandhali May 24, 2026
b0c983b
Extend JpaRepository for HistoryRecord entity
AljolandaAlhandhali May 24, 2026
b1fa964
Complete HistoryRepository implementation
AljolandaAlhandhali May 24, 2026
ae4a187
Create MeasurementService class
AljolandaAlhandhali May 24, 2026
fe34900
Add Spring service annotation
AljolandaAlhandhali May 24, 2026
b5aaa13
Add convert method structure
AljolandaAlhandhali May 24, 2026
7f05503
Handle null input in convert method
AljolandaAlhandhali May 24, 2026
fa596fd
Initialize totals list and index counter
AljolandaAlhandhali May 24, 2026
c09bc07
Add parsing loop for input processing
AljolandaAlhandhali May 24, 2026
d8ebed3
Read count values from encoded input
AljolandaAlhandhali May 24, 2026
f7b4624
Add measurement accumulation logic
AljolandaAlhandhali May 24, 2026
92eb283
Store calculated totals in result list
AljolandaAlhandhali May 24, 2026
0a2c4ab
Return converted totals list
AljolandaAlhandhali May 24, 2026
4ad8012
Add readNumber helper method
AljolandaAlhandhali May 24, 2026
5c75035
Handle single character number parsing
AljolandaAlhandhali May 24, 2026
0d757e6
Add multi character z-based number parsing
AljolandaAlhandhali May 24, 2026
3f68800
Add terminator symbol parsing logic
AljolandaAlhandhali May 24, 2026
7847be3
Return parsed number object
AljolandaAlhandhali May 24, 2026
deae72c
Add symbolValue helper method
AljolandaAlhandhali May 24, 2026
6971d89
Handle underscore symbol as zero
AljolandaAlhandhali May 24, 2026
4f6ff1c
Validate symbol range before conversion
AljolandaAlhandhali May 24, 2026
f8fdeff
Convert alphabet symbol to numeric value
AljolandaAlhandhali May 24, 2026
770605d
Add ParsedNumber record structure
AljolandaAlhandhali May 24, 2026
b014a96
Complete MeasurementService implementation
AljolandaAlhandhali May 24, 2026
a3f0b02
Create HistoryService class
AljolandaAlhandhali May 24, 2026
d0e5c24
Add Spring service annotation
AljolandaAlhandhali May 24, 2026
9e466de
Add repository and object mapper dependencies
AljolandaAlhandhali May 24, 2026
72f1ab1
Add constructor dependency injection
AljolandaAlhandhali May 24, 2026
679f1c8
Add record method for storing history
AljolandaAlhandhali May 24, 2026
6f47ad3
Serialize output list into JSON format
AljolandaAlhandhali May 24, 2026
c99704a
Save history record into database
AljolandaAlhandhali May 24, 2026
4fcec0b
Handle JSON serialization exceptions
AljolandaAlhandhali May 24, 2026
3891978
Add findAll method with sorting support
AljolandaAlhandhali May 24, 2026
7716221
Add findById method with exception handling
AljolandaAlhandhali May 24, 2026
e60b149
Add update method for history records
AljolandaAlhandhali May 24, 2026
6bd757f
Add timestamp update validation
AljolandaAlhandhali May 24, 2026
21b329f
Add source IP address update validation
AljolandaAlhandhali May 24, 2026
3a5c897
Add input update validation
AljolandaAlhandhali May 24, 2026
1463664
Add output update validation
AljolandaAlhandhali May 24, 2026
5d80022
Add deleteAll method
AljolandaAlhandhali May 24, 2026
58d89ec
Add deleteById method
AljolandaAlhandhali May 24, 2026
bf579f5
Validate history record existence before deletion
AljolandaAlhandhali May 24, 2026
74168b2
Delete history record by ID
AljolandaAlhandhali May 24, 2026
29d9b6f
Add HistoryRecordNotFoundException class
AljolandaAlhandhali May 24, 2026
cdc3798
Add exception constructor with custom message
AljolandaAlhandhali May 24, 2026
563ccef
Complete HistoryService implementation
AljolandaAlhandhali May 24, 2026
4e5ab44
Create MeasurementController class
AljolandaAlhandhali May 24, 2026
f7605f4
Add REST controller annotation
AljolandaAlhandhali May 24, 2026
d4ebfbb
Initialize controller logger
AljolandaAlhandhali May 24, 2026
1292d83
Add service dependencies to controller
AljolandaAlhandhali May 24, 2026
1349e11
Add constructor dependency injection
AljolandaAlhandhali May 24, 2026
cf27895
Add convert endpoint method
AljolandaAlhandhali May 24, 2026
f8f8ff4
Handle null input safely
AljolandaAlhandhali May 24, 2026
58184b2
Log received request input
AljolandaAlhandhali May 24, 2026
cd4cc16
Convert measurement input using service
AljolandaAlhandhali May 24, 2026
b74466c
Log conversion result
AljolandaAlhandhali May 24, 2026
8aa914f
Save conversion request history
AljolandaAlhandhali May 24, 2026
0fcb1bc
Log client IP address after saving request
AljolandaAlhandhali May 24, 2026
c3074e0
Return conversion output response
AljolandaAlhandhali May 24, 2026
1a326cd
Add client IP extraction helper method
AljolandaAlhandhali May 24, 2026
9407e24
Read forwarded IP address from request headers
AljolandaAlhandhali May 24, 2026
a6b5d82
Handle proxy forwarded IP addresses
AljolandaAlhandhali May 24, 2026
d842e7a
Fallback to remote client address
AljolandaAlhandhali May 24, 2026
54bebd9
Complete MeasurementController implementation
AljolandaAlhandhali May 24, 2026
49a5f38
Create HistoryController class
AljolandaAlhandhali May 24, 2026
fc26d76
Add REST controller and request mapping annotations
AljolandaAlhandhali May 24, 2026
1bb519f
Initialize controller logger
AljolandaAlhandhali May 24, 2026
8b433f4
Add HistoryService dependency
AljolandaAlhandhali May 24, 2026
bbd021e
Add constructor dependency injection
AljolandaAlhandhali May 24, 2026
c4ca979
Add findAll history endpoint
AljolandaAlhandhali May 24, 2026
8d5187c
Add findById history endpoint
AljolandaAlhandhali May 24, 2026
f06bba8
Add PUT endpoint for history updates
AljolandaAlhandhali May 24, 2026
e7e8461
Add PATCH endpoint for partial updates
AljolandaAlhandhali May 24, 2026
16fcaaf
Add deleteAll history endpoint
AljolandaAlhandhali May 24, 2026
aaf1c69
Add deleteById history endpoint
AljolandaAlhandhali May 24, 2026
6d7b007
Add exception handler for missing history records
AljolandaAlhandhali May 24, 2026
3435577
Add shared update helper method
AljolandaAlhandhali May 24, 2026
16995f0
Add reusable error response builder
AljolandaAlhandhali May 24, 2026
e9af53b
Add HistoryUpdateRequest record
AljolandaAlhandhali May 24, 2026
5fbeb66
Complete HistoryController implementation
AljolandaAlhandhali May 24, 2026
914b2e2
Update HistoryRecord implementation
AljolandaAlhandhali May 25, 2026
01f1230
Update HistoryRecord implementation
AljolandaAlhandhali May 25, 2026
575994e
Update HistoryService implementation
AljolandaAlhandhali May 25, 2026
46d61a0
Update HistoryController implementation
AljolandaAlhandhali May 25, 2026
a92d140
Logback Spring
AljolandaAlhandhali May 25, 2026
a49abc1
README
AljolandaAlhandhali May 25, 2026
f97a3aa
pom.xml
AljolandaAlhandhali May 25, 2026
982beb4
Create initial Spring Boot Maven project
AljolandaAlhandhali May 25, 2026
00c6c1b
Add package measurement conversion REST API
AljolandaAlhandhali May 25, 2026
ad5329b
Refactor source structure into layered packages
AljolandaAlhandhali May 25, 2026
7c39120
Update conversion behavior for invalid and missing values
AljolandaAlhandhali May 25, 2026
67a6fd1
Add conversion history data model and repository
AljolandaAlhandhali May 25, 2026
d21d991
Document Logback console and file logging
AljolandaAlhandhali May 25, 2026
408f694
Document Oracle profile and logging configuration
AljolandaAlhandhali May 25, 2026
bb1b39d
Add project version history and documentation updates
AljolandaAlhandhali May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Changelog

All notable project changes are documented in this file.

## 0.0.1-SNAPSHOT - 2026-05-21

- Created the initial Spring Boot Maven project.
- Added the basic application entry point.
- Added the initial README file.

## 0.0.2-SNAPSHOT - 2026-05-21

- Added the package measurement conversion REST API.
- Implemented conversion logic for `_`, `a-z`, and multi-character `z` values.
- Added request history persistence with `id`, `timestamp`, `source_ip_address`, `input`, and `output` fields.
- Added history REST endpoints for `GET`, `PUT`, `PATCH`, and `DELETE` requests.
- Added Oracle XE database configuration through the `oracle` Spring profile.
- Added local H2 database support for development and automated tests.
- Added Logback configuration for console logging and daily rolling file logging.
- Configured application logs to write to `logs/oraclequantapi.log` by default.
- Configured rolling log retention for seven days.
- Added unit and integration tests for conversion and API behavior.

## 0.0.3-SNAPSHOT - 2026-05-21

- Refactored the Java source structure into `controller`, `service`, `model`, and `repository` packages.
- Renamed the main application class to `OracleQuantApiApplication`.
- Renamed service and repository classes to match the requested project structure.
- Updated unit and integration tests to match the new package structure.

## 0.0.4-SNAPSHOT - 2026-05-22

- Updated conversion behavior so invalid characters are treated as `0` instead of returning errors.
- Updated conversion behavior so missing measured values are treated as `0`.
- Added support for empty or missing `input` values, returning an empty list.
- Updated history persistence to support empty request input values.
- Updated tests for tolerant conversion behavior.

## 0.0.5-SNAPSHOT - 2026-05-22

- Reviewed the current project structure and database-related files.
- Added `ConversionHistory` entity file for conversion history data modeling.
- Added `ConversionHistoryRepository` for conversion history database access.
- Kept the active API history flow using `HistoryRecord`, `HistoryRepository`, and `HistoryService`.
- Updated `CHANGELOG.md` and `version.txt` to match the current project state.

## 0.0.6-SNAPSHOT - 2026-05-23

- Updated logging documentation in `CHANGELOG.md` and `version.txt`.
- Documented that the application uses Logback for console and file logging.
- Documented that logs are written to `logs/oraclequantapi.log` by default.
- Documented that rolling log files are retained for seven days.

## 0.0.7-SNAPSHOT - 2026-05-25

- Updated documentation for `application-oracle.properties` and `logback-spring.xml`.
- Documented that `application-oracle.properties` stores Oracle XE profile database settings separately from local H2 settings.
- Documented that the Oracle profile can be activated with `SPRING_PROFILES_ACTIVE=oracle`.
- Documented that `logback-spring.xml` controls console logging, file logging, daily log rotation, and seven-day log retention.
- Clarified that logs are written to `logs/oraclequantapi.log` by default.
Loading