Skip to main content

Getting Started

Get the Transform Platform running locally in about 5 minutes.

Setup Flow​

Prerequisites​

1. Clone the Repository​

git clone https://github.com/avinashreddyoceans/transform-platform.git
cd transform-platform

2. Configure Environment​

cp .docker/env.example .env
tip

For local dev the defaults in env.example work out of the box. Only change values for production deployments.

3. Start Infrastructure​

docker compose -f .docker/docker-compose.yml up -d

4. Run the API​

./gradlew :platform-api:bootRun

The Spring Boot application starts on port 8080.

5. Verify​

Open the Swagger UI to confirm the API is running:

http://localhost:8080/swagger-ui

6. Run Tests​

./gradlew test

All 53 Kotest tests in platform-core should pass.


Quick Transform Walkthrough​

Step 1 β€” Register a Spec​

POST /api/v1/specs
Content-Type: application/json

{
"name": "Bank Transactions CSV",
"format": "CSV",
"hasHeader": true,
"delimiter": ",",
"fields": [
{ "name": "accountNumber", "type": "STRING", "columnName": "account_number", "sensitive": true },
{ "name": "amount", "type": "DECIMAL", "columnName": "amount" },
{ "name": "transactionDate","type": "DATE", "columnName": "date", "format": "yyyy-MM-dd" },
{ "name": "description", "type": "STRING", "columnName": "description", "required": false }
],
"correctionRules": [
{ "ruleId": "trim-desc", "field": "description", "correctionType": "TRIM" }
],
"validationRules": [
{ "ruleId": "amount-positive", "field": "amount", "ruleType": "MIN_VALUE", "value": "0",
"message": "Amount must be positive", "severity": "ERROR" }
]
}

The response contains a specId β€” hold onto it.

Step 2 β€” Transform a File​

curl -X POST http://localhost:8080/api/v1/transform/file-to-events \
-F "file=@transactions.csv" \
-F "specId=<your-spec-id>" \
-F "kafkaTopic=bank-transactions"

IntelliJ IDEA Setup​

Shared run configurations are committed to .run/ and .idea/runConfigurations/. Open the project in IntelliJ and Run Transform App (Local) and Docker Compose Dependencies appear automatically.