Skip to content

rohitvpatil0810/v2data

Repository files navigation

v2data

GitHub Repo

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.


Core Features

  • 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
  • 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.

Tech Stack

  • 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

Quick Start (Production)

Prerequisites

  • Java 23
  • Maven
  • Docker & Docker Compose

Setup

  1. Clone repository
git clone https://github.com/rohitvpatil0810/v2data.git
cd v2data
  1. Configure environment variables Copy the provided example file and update your values:
cp .env.example .env
  1. Start supporting services
docker-compose up -d
  1. Build and run the application
mvn clean package
java -jar target/v2data-0.0.1-SNAPSHOT.jar

Or using Docker:

docker build -t v2data .
docker run -p 8080:8080 --env-file .env v2data

Development Setup (Local)

  1. Clone repository
git clone https://github.com/rohitvpatil0810/v2data.git
cd v2data
  1. Set environment variables
cp .env.example .env

Then update values as needed.

  1. Run supporting services
docker-compose up -d
  1. Run application in IDE (IntelliJ/Eclipse)

    • Ensure Java 23 SDK is selected
    • Enable environment variables injection in run configuration
    • Run V2dataApplication main class
  2. Hot reload during development Spring Boot DevTools is included for live reload when source files change.


Logging

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>

API Endpoints

For all endpoints, please refer to the Postman collection for testing.


Docker

  • Dockerfile: Multi-stage build (Maven → Runtime) with optimized JVM
  • docker-compose.yml: PostgreSQL + pgAdmin, database volume persistence

Dependencies

Key dependencies include:

  • spring-boot-starter-web, webflux, data-jpa, security, validation, mail
  • AWS SDK v2 for S3 (Cloudflare R2)
  • logstash-logback-encoder for JSON logs
  • jjwt for JWT
  • flyway-core for DB migrations
  • postgresql driver
  • mapstruct for DTO mapping
  • tika-core for file type detection

For full dependency list, see pom.xml.


Related Projects

  • Transcriber: v2data-transcriber – handles transcription and AI-generated notes using Cloudflare Workers AI.

Author

Rohit PatilGitHub | Portfolio


Issues

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors