v2data is a Spring Boot application that allows users to upload audio files, transcribe them, and generate
structured notes. It features authentication and authorization, secure file storage, and email verification.
- Audio Upload – Upload audio files for transcription.
- Event-Driven Asynchronous Processing – Audio transcription and notes generation are executed asynchronously using Spring Boot’s event-driven architecture, ensuring non-blocking request handling.
- Transcription & Notes Generation – Uses
the v2data-transcriber project hosted on Cloudflare Workers,
leveraging AI models:
- Speech-to-text:
@cf/openai/whisper-large-v3-turbo - Text Generation:
@cf/meta/llama-3-8b-instruct - Workers AI Documentation
- Speech-to-text:
- Authentication & Authorization – Secure authentication using JWT-based access and refresh tokens (endpoints handle authentication and registration securely).
- Email Verification – Handled entirely by the application; Mailgun is used only as an SMTP relay to send verification emails.
- File Storage – Uses AWS SDK with Cloudflare R2 object storage.
- Logging – Configured with Logback in both JSON and human-readable formats.
- Backend: Java 23 (build 23+37-2369), Spring Boot 3.5
- Database: PostgreSQL + Flyway
- Security: Spring Security + JWT
- Email: Spring Mail (Mailgun as SMTP relay)
- Cloud Storage: AWS SDK + Cloudflare R2
- Transcription & Notes: Cloudflare Workers AI
- Logging: Logback + Logstash Encoder
- Build Tool: Maven
- Containerization: Docker + Docker Compose
- Java 23
- Maven
- Docker & Docker Compose
- Clone repository
git clone https://github.com/rohitvpatil0810/v2data.git
cd v2data- Configure environment variables Copy the provided example file and update your values:
cp .env.example .env- Start supporting services
docker-compose up -d- Build and run the application
mvn clean package
java -jar target/v2data-0.0.1-SNAPSHOT.jarOr using Docker:
docker build -t v2data .
docker run -p 8080:8080 --env-file .env v2data- Clone repository
git clone https://github.com/rohitvpatil0810/v2data.git
cd v2data- Set environment variables
cp .env.example .envThen update values as needed.
- Run supporting services
docker-compose up -d-
Run application in IDE (IntelliJ/Eclipse)
- Ensure Java 23 SDK is selected
- Enable environment variables injection in run configuration
- Run
V2dataApplicationmain class
-
Hot reload during development Spring Boot DevTools is included for live reload when source files change.
Logs are written both to the console (human-readable) and JSON files:
- Console: Human-readable
- File:
logs/app.json(rotates daily, max 30 days)
Logback configuration snippet:
<configuration scan="true">
<property name="LOG_PATH" value="logs"/>
<appender name="JSON_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/app.json</file>
...
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="JSON_FILE"/>
</root>
</configuration>For all endpoints, please refer to the Postman collection for testing.
- Dockerfile: Multi-stage build (Maven → Runtime) with optimized JVM
- docker-compose.yml: PostgreSQL + pgAdmin, database volume persistence
Key dependencies include:
spring-boot-starter-web,webflux,data-jpa,security,validation,mailAWS SDK v2for S3 (Cloudflare R2)logstash-logback-encoderfor JSON logsjjwtfor JWTflyway-corefor DB migrationspostgresqldrivermapstructfor DTO mappingtika-corefor file type detection
For full dependency list, see pom.xml.
- Transcriber: v2data-transcriber – handles transcription and AI-generated notes using Cloudflare Workers AI.
Rohit Patil – GitHub | Portfolio
- Raise issues from GitHub Issues
- Or send me message through my website