Watch
1
0
Fork
You've already forked transcribo-frontend
0
mirror of https://github.com/DCC-BS/transcribo-frontend.git synced 2026-08-17 12:55:25 +00:00
  • TypeScript 52.2%
  • Vue 46.6%
  • HTML 0.5%
  • CSS 0.5%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
renovate[bot] 0cee2c7cea
fix(deps): update dependency vue-tsc to v3.3.9 (#319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-15 04:53:14 +00:00
.agents/skills Fix icons 2026-08-04 14:25:28 +02:00
.cursor/rules Update FFmpeg integration and enhance transcription features 2025-07-30 09:30:27 +02:00
.github chore(deps): update dcc-bs/ci-workflows action to v9 2026-08-11 13:25:25 +00:00
.vscode Update VSCode settings and refactor MediaEditor and transcription page components for improved readability 2025-08-27 16:14:22 +02:00
.worktrees/assets Fix/v1.0.1 (#171) 2026-03-10 10:07:21 +01:00
_imgs Update img 2025-11-03 15:46:11 +01:00
app Adressed code rabbit issues 2026-08-11 16:19:45 +02:00
docker fix: update language labels and improve configuration settings 2026-04-20 15:44:45 +02:00
i18n/locales Adressed code rabbit issues 2026-08-11 16:19:45 +02:00
public Fix icons 2026-08-04 14:25:28 +02:00
server feat: changed version and changelog for 2.0.2 2026-08-11 15:23:42 +02:00
shared/types renamed summary request to text 2026-08-03 11:48:30 +02:00
tests feat: tiptap transcript editor improvements and dependency updates 2026-08-11 10:24:35 +02:00
.dockerignore inital commit 2025-02-28 15:54:00 +01:00
.editorconfig inital commit 2025-02-28 15:54:00 +01:00
.env.buildtime.schema add varlock (#204) 2026-04-07 13:35:12 +02:00
.env.example Add max concurrent transcriptions configuration and implement rate limiting for uploads 2026-06-16 15:56:15 +02:00
.env.runtime.schema Bump @dcc-bs/common-ui.bs.js to 2.1.2 and add disable env vars 2026-08-05 11:51:04 +02:00
.env.schema add varlock (#204) 2026-04-07 13:35:12 +02:00
.gitignore add varlock (#204) 2026-04-07 13:35:12 +02:00
.npmrc Updated libs and icons (#113) 2025-12-12 16:58:20 +01:00
.nuxtrc fix(i18n): update German translations for consistency and tone 2026-06-19 13:41:08 +02:00
AGENTS.md Feature/UI redesing (#163) 2026-03-03 14:23:56 +01:00
biome.json feature: add jump-to-first-appearance button for speakers (#281) 2026-08-03 09:50:56 +02:00
bun.lock fix(deps): update dependency vue-tsc to v3.3.9 (#319) 2026-08-15 04:53:14 +00:00
bunfig.toml Fix rtl / ltr issue 2026-03-27 11:42:55 +01:00
docker-compose.dev.yml Updated libs and icons (#113) 2025-12-12 16:58:20 +01:00
docker-compose.yml Updated audio recorder (#111) 2025-12-03 12:56:52 +01:00
Dockerfile fixed the dockerfile 2026-05-22 12:43:28 +02:00
env.d.ts feat: tiptap transcript editor improvements and dependency updates 2026-08-11 10:24:35 +02:00
LICENSE inital commit 2025-02-28 15:54:00 +01:00
nuxt.config.ts Feature/update common UI (#303) 2026-08-04 17:37:10 +02:00
package.json fix(deps): update dependency vue-tsc to v3.3.9 (#319) 2026-08-15 04:53:14 +00:00
publiccode.yml Add organisation URI to publiccode.yml 2026-06-11 14:08:49 +02:00
README.md updated the Readme 2026-01-29 11:15:50 +01:00
renovate.json Fix deps 2026-06-19 15:24:59 +02:00
tsconfig.json Refactor code style and configuration; remove unused Prettier files, update ESLint config, and improve formatting across multiple files 2025-03-25 14:34:00 +01:00
vitest.config.ts Feature/UI redesing (#163) 2026-03-03 14:23:56 +01:00

Transcribo (Frontend)

Transcribo Screenshot

Transcribo is a modern web application for audio and video transcription with advanced editing capabilities. Built with Nuxt.js and TypeScript, it provides a comprehensive set of tools for creating, editing, and managing transcriptions with timeline-based visualization. This repository contains only the frontend code; the backend is written in Python FastAPI and available at https://github.com/DCC-BS/transcribo-backend.

GitHub License Checked with Biome


DCC Documentation & Guidelines | DCC Website


Features

  • Audio/Video Transcription: Upload media files and generate accurate transcriptions
  • Timeline Editor: Visual timeline with spectrograms for precise segment editing
  • Speaker Management: Assign and manage multiple speakers with color-coded segments
  • Real-time Editing: Edit transcription text with live preview and validation
  • Export Options: Export transcriptions as text or SRT subtitle files
  • Audio Recording: Built-in audio recording capabilities for direct transcription
  • Undo/Redo System: Comprehensive command system with full undo/redo support
  • Multilingual Support: Available in English and German
  • Progressive Web App: Installable PWA with offline capabilities

Technology Stack

  • Frontend: Nuxt.js with TypeScript and Composition API
  • UI Framework: Nuxt UI
  • Canvas Graphics: Konva.js with Vue Konva for timeline visualization
  • Audio Processing: FFmpeg.wasm for client-side media conversion
  • Package Manager: Bun
  • Internationalization: Nuxt I18n
  • State Management: Pinia with IndexedDB persistence
  • Code Quality: Biome for linting and formatting

Setup

Environment Configuration

Create a .env file in the project root with the required environment variables:

API_URL=http://localhost:8000
LOG_LEVEL=debug

Install Dependencies

Make sure to install dependencies using Bun:

bun install

Development

Start the development server on http://localhost:3000:

bun run dev

For debugging with inspector:

bun run debug

Backend Setup

Create a .env.backend file in the root directory with the required environment variables:

HF_AUTH_TOKEN=your_hugging_face_token

Note: The HF_AUTH_TOKEN is required for Hugging Face API access. You can create a token here.

Start the backend as a Docker container:

sudo docker compose up --build

Alternative clone the backend repository transcribo-backend and run it locally.

Testing & Linting

Run tests with Vitest:

# Run tests
bun test

# Run tests in watch mode
bun test:watch

# Generate coverage report
bun test:coverage

Format code with Biome:

bun run lint

Check and fix code issues:

bun run check

Production

Build the application for production:

bun run build

Generate static site:

bun run generate

Preview production build:

bun run preview

Docker Deployment

The application includes a multi-stage Dockerfile for production deployment:

# Build the Docker image
docker build -t transcribo-frontend .

# Run the container
docker run -p 3000:3000 transcribo-frontend

For a complete setup with backend services, use Docker Compose:

# Start all services (frontend, backend, and AI models)
sudo docker compose --profile frontend up --build

# Start only backend services
sudo docker compose up --build

Project Architecture

  • assets/: CSS styles and media files
  • components/: Vue components for the UI including media players and timeline editors
  • composables/: Reusable Vue composition functions for transcription services
  • i18n/: Internationalization configuration for English and German
  • pages/: Application pages and routes for transcription management
  • server/: API endpoints and server middleware
  • stores/: Pinia stores for transcription and task state management
  • types/: TypeScript type definitions and command interfaces
  • utils/: Utility functions for time formatting and speaker management

Key Components

Timeline Editor

  • Visual representation of audio/video with spectrograms
  • Drag-and-drop segment editing with snapping
  • Real-time playhead synchronization
  • Zoom and pan controls for precise editing

Command System

  • Reversible command pattern for all editing operations
  • Full undo/redo functionality
  • Localized command descriptions for user feedback

Media Support

  • Support for various audio and video formats
  • Client-side media conversion using FFmpeg.wasm
  • Built-in audio recording capabilities
  • Media file management with IndexedDB storage

Acknowledgments

This application is based on Transcribo from the Statistical Office of the Canton of Zurich. We have rewritten the functionality of the original application to fit into a modular and modern web application that separates frontend, backend and AI models.

License

MIT © Data Competence Center Basel-Stadt

DCC Logo

Datenwissenschaften und KI
Developed with ❤️ by DCC - Data Competence Center