Legal Transcription Platform – Technical Documentation

App UI: https://legal-transcriber-stephenwiggs.replit.app/
App Development: https://replit.com/@stephenwiggs/LegalTranscriber
Documents: User Guide / Tech Docs

Architecture Overview

Frontend (React + TypeScript)

  • React application with TypeScript
  • Uses Tanstack Query for data fetching
  • WebSocket integration for real-time updates
  • Shadcn UI components for interface

Backend (Node.js + Express)

  • Express server with TypeScript
  • PostgreSQL database with Drizzle ORM
  • WebSocket server for real-time updates
  • Authentication using Passport.js
  • File handling with Multer

Core Components

Database Schema

  • Users: Stores user authentication data
  • Transcriptions: Manages audio file metadata and status
  • TranscriptSegments: Stores individual transcript segments

API Endpoints

  • Authentication: /api/login, /api/register, /api/logout
  • Transcriptions:
  • GET /api/transcriptions
  • POST /api/upload
  • POST /api/transcriptions/:id/transcribe
  • GET /api/transcriptions/:id/download
  • DELETE /api/transcriptions/:id
  • Segments:
  • GET /api/transcriptions/:id/segments
  • PUT /api/segments/:id
  • DELETE /api/segments/:id

File Processing

  • Audio files stored in /uploads directory
  • Supports multiple audio formats
  • Uses Deepgram API for transcription
  • Implements chunked file streaming

Security

  • Session-based authentication
  • CSRF protection
  • File type validation
  • Size limitations
  • User data isolation

Integration Points

  • Deepgram API for speech-to-text
  • WebSocket for real-time updates
  • Browser audio API for playback
  • File system for audio storage

Performance Considerations

  • Streaming audio playback
  • Paginated transcript loading
  • Optimistic UI updates
  • WebSocket reconnection handling

Error Handling

  • File upload validation
  • Transcription error recovery
  • Authentication error handling
  • API error responses