From 565caebdd85ae22dc3c751e293b5628e7064adce Mon Sep 17 00:00:00 2001 From: MikeHughes-BIN Date: Sun, 22 Feb 2026 15:35:19 +0100 Subject: [PATCH] complete documentation package --- SOFTWARE_DOCUMENTATION.md | 1329 ++++++++++++++++++++++++++++++++++++ SOFTWARE_DOCUMENTATION.pdf | Bin 0 -> 219300 bytes 2 files changed, 1329 insertions(+) create mode 100644 SOFTWARE_DOCUMENTATION.md create mode 100644 SOFTWARE_DOCUMENTATION.pdf diff --git a/SOFTWARE_DOCUMENTATION.md b/SOFTWARE_DOCUMENTATION.md new file mode 100644 index 0000000..3f1189a --- /dev/null +++ b/SOFTWARE_DOCUMENTATION.md @@ -0,0 +1,1329 @@ +# Video2Document (V2D) — Software Documentation Package + +> **Document Version:** 1.0.0 +> **Conformance:** ISO/IEC/IEEE 26514:2022 — Systems and Software Engineering — Requirements for Designers and Developers of User Documentation +> **Status:** Release Candidate +> **Last Updated:** 2026-02-22 +> **Target Audience:** End Users · Developers · Administrators +> **Technical Depth:** Intermediate → Expert + +--- + +## Table of Contents + +1. [Executive Summary](#1-executive-summary) +2. [Product Overview](#2-product-overview) +3. [System Architecture](#3-system-architecture) +4. [Technology Stack](#4-technology-stack) +5. [Installation & Setup Guide](#5-installation--setup-guide) +6. [Configuration Guide](#6-configuration-guide) +7. [Usage Guide — End User Perspective](#7-usage-guide--end-user-perspective) +8. [API Documentation](#8-api-documentation) +9. [Data Model Description](#9-data-model-description) +10. [Security Considerations](#10-security-considerations) +11. [Performance & Scalability Notes](#11-performance--scalability-notes) +12. [Deployment Guide](#12-deployment-guide) +13. [Testing Strategy](#13-testing-strategy) +14. [Maintenance & Support Plan](#14-maintenance--support-plan) +15. [Limitations & Known Issues](#15-limitations--known-issues) +16. [Future Improvements / Roadmap](#16-future-improvements--roadmap) +17. [Glossary](#17-glossary) + +--- + +## 1. Executive Summary + +**Video2Document (V2D)** is a cross-platform desktop application that automates the conversion of video and audio recordings into structured, professional documents. It combines AI-based speech transcription, speaker diarisation, and large language model (LLM) document generation into a single, guided end-to-end pipeline. + +The system addresses a concrete operational need: organisations and individuals frequently produce recordings of meetings, lectures, and collaborative sessions that remain inaccessible as raw media files. V2D transforms this latent content into actionable, shareable documents — meeting reports, agendas, sprint planning notes, and custom-format outputs — without requiring users to possess programming or AI expertise. + +The application is delivered as an Electron desktop executable, runs on Windows, macOS, and Linux, and integrates with three independent LLM providers (Google Gemini, OpenAI GPT via SAIA, and Alibaba Qwen3) and two transcription backends (AssemblyAI cloud and Whisper local). Its modular architecture permits the addition of new AI providers or output formats with minimal modification to the core codebase. + +**Key capabilities at a glance:** + +| Capability | Detail | +|---|---| +| Input formats | MP4, MOV, WAV, MP3, FLAC (any FFmpeg-compatible source) | +| Output formats | PDF, DOCX, HTML, TXT | +| Transcription | AssemblyAI (cloud) · Whisper.cpp (local/offline) | +| LLM providers | Google Gemini · OpenAI GPT · Alibaba Qwen3 | +| Document types | Follow-up report · Agenda · Result protocol · Sprint planning note · Custom | +| Speaker handling | Automatic diarisation with post-hoc name substitution | +| Deployment | Cross-platform Electron desktop app | +| UI languages | English · German (extensible) | + +--- + +## 2. Product Overview + +### 2.1 Problem Statement + +Recording meetings and lectures is widespread practice. However, converting those recordings into usable documents is time-intensive, error-prone, and requires significant cognitive effort. Manually transcribing a one-hour meeting and reformatting it as a professional report can require two to four hours of skilled effort. + +V2D reduces this effort to a guided six-step workflow completed in minutes, with the document quality governed by the selected LLM and document-type prompt. + +### 2.2 Target Users + +| User Type | Description | Primary Need | +|---|---|---| +| **End User (non-technical)** | Meeting participants, students, knowledge workers | Generate a document from a recording with no setup | +| **Developer** | Engineers extending or integrating V2D | Understand architecture, add modules, contribute | +| **Administrator** | IT staff deploying V2D internally | Manage API keys, configure keyserver, maintain deployments | + +### 2.3 Functional Requirements + +| ID | Requirement | Priority | +|---|---|---| +| FR-01 | The system shall accept video and audio files as input | Must | +| FR-02 | The system shall extract audio from video files | Must | +| FR-03 | The system shall transcribe audio to text with speaker labels | Must | +| FR-04 | The system shall generate structured documents from transcripts using an LLM | Must | +| FR-05 | The system shall allow the user to assign real names to speakers | Must | +| FR-06 | The system shall export documents in PDF, DOCX, HTML, and TXT formats | Must | +| FR-07 | The system shall provide at least three standard document type templates | Must | +| FR-08 | The system shall allow users to create custom document type templates | Should | +| FR-09 | The system shall support at least two independent transcription backends | Should | +| FR-10 | The system shall support at least two independent LLM backends | Should | +| FR-11 | The system shall display processing progress to the user | Should | +| FR-12 | The system shall provide playable speaker audio previews | Could | +| FR-13 | The system shall support UI localisation to at least English and German | Could | + +### 2.4 Non-Functional Requirements + +| ID | Requirement | Category | +|---|---|---| +| NFR-01 | The application shall run on Windows 10+, macOS 12+, and Ubuntu 20.04+ | Portability | +| NFR-02 | API keys shall never be stored in source-controlled files | Security | +| NFR-03 | The UI shall be operable by a non-technical user without documentation | Usability | +| NFR-04 | Individual modules shall be replaceable without modifying the core pipeline | Maintainability | +| NFR-05 | The addition of a new LLM or transcription module shall require changes to exactly one directory | Extensibility | +| NFR-06 | Intermediate artefacts (audio, transcripts, HTML) shall be persisted on disk | Reliability | +| NFR-07 | The application shall report errors to the user via the UI | Usability | +| NFR-08 | All secrets shall be injected at runtime via environment variables or keyserver | Security | +| NFR-09 | The system shall complete processing of a 30-minute recording within 10 minutes (cloud transcription) | Performance | +| NFR-10 | The test suite shall cover all major module types | Testability | + +### 2.5 Scope and Constraints + +**In scope:** + +- Desktop application for video/audio-to-document conversion +- Modular plugin system for transcription and LLM providers +- Multi-format document export +- Speaker diarisation and name mapping + +**Out of scope (current version):** + +- Real-time (streaming) transcription +- Web-based or SaaS deployment +- Voice biometric speaker identification +- Video editing or preview +- Multi-user collaboration or cloud storage + +--- + +## 3. System Architecture + +### 3.1 Architectural Overview + +V2D follows a **layered, modular pipeline architecture** running within a single Electron process pair (main process + renderer process). There is no external server dependency for the core workflow; all orchestration is local. + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ Electron Application │ +│ │ +│ ┌──────────────────────┐ ┌──────────────────────────────┐ │ +│ │ Renderer Process │ IPC │ Main Process │ │ +│ │ (Chromium / HTML) │◄──────►│ (Node.js / Orchestrator) │ │ +│ │ │ │ │ │ +│ │ index.html │ │ main.js │ │ +│ │ script.js │ │ module-handler.js │ │ +│ │ renderer.js │ │ mapFunctions (global Map) │ │ +│ │ languages.js │ │ │ │ +│ └──────────────────────┘ └──────────────┬───────────────┘ │ +│ │ │ │ +│ preload.js ┌────────────▼────────────┐ │ +│ (contextBridge / IPC) │ Module Registry │ │ +│ │ (mapFunctions Map) │ │ +│ └────────────┬────────────┘ │ +│ │ │ +└─────────────────────────────────────────────────┼───────────────────┘ + │ + ┌───────────────────┬───────────────┼───────────────┐ + │ │ │ │ + ┌─────────▼──────┐ ┌─────────▼──────┐ ┌────▼──────┐ ┌────▼──────┐ + │ Extraction │ │ Transcription │ │ LLM │ │ Converter │ + │ ffmpegExtract │ │ assembly.js │ │ gemini.js │ │ convert.js│ + │ │ │ whisperLocal │ │ chatgpt.js│ │ │ + └────────┬───────┘ └───────┬────────┘ │ qwen3.js │ └───────────┘ + │ │ └────────────┘ + ▼ ▼ + ┌─────────────────────────────────┐ + │ /storage/ (disk) │ + │ /audio /transcripts │ + │ /transcriptionSummaries │ + │ /documents /documentType │ + └─────────────────────────────────┘ +``` + +### 3.2 Process Architecture + +Electron provides two isolated JavaScript contexts: + +| Process | Runtime | Responsibilities | +|---|---|---| +| **Main Process** | Node.js | File system, pipeline execution, module loading, IPC handlers, native dialogs | +| **Renderer Process** | Chromium (sandboxed) | UI rendering, user interaction, progress display | +| **Preload Script** | Node.js (bridge) | Exposes a controlled API surface to the renderer via `contextBridge` | + +Node integration in the renderer is explicitly disabled. All privileged operations are routed through the preload bridge. + +### 3.3 Module System + +The module system is the central extensibility mechanism. On startup, `main.js` traverses all subdirectories of `services/modules/`, dynamically requires each `.js` file, and registers the exported module object in a global `Map` keyed by `module.name`. + +``` +services/modules/ +├── extraction/ ffmpegExtractor.js +├── transcription-remote/ assembly.js +├── transcription-local/ whisperLocal.ts +├── jsonTools/ transcriptionSummarizer2.js +├── llm-gemini/ gemini.js +├── llm-chat_gpt/ chatgpt.js +├── quen3/ qwen3.js +├── convert/ convert.js +├── audioSnippets/ extract-speaker-snippets.js +├── replace_speaker/ replaceSpeaker.js +└── utility/ @startup.js · module-handler.js +``` + +Each module conforms to the following interface: + +```javascript +module.exports = { + name: "unique-module-identifier", // key in mapFunctions + type: "llm|transcription|...", // category label + displayname: "Human-Readable Name", // shown in UI dropdowns + description: "What this module does", + audioformat: "mp3", // (transcription modules only) + async function(parameter) { // primary entry point + // Implementation + } +} +``` + +Modules are invoked as: `mapFunctions.get("module-name").function(params)`. + +### 3.4 Pipeline Execution Flow + +The six-step user workflow maps to the following internal pipeline stages: + +``` +Stage 1 │ VIDEO INPUT User selects file via native file dialog + │ IPC: file_submit → main.js + ▼ +Stage 2 │ AUDIO EXTRACTION ffmpegExtractor extracts audio stream + │ Output: /storage/audio/. + ▼ +Stage 3 │ TRANSCRIPTION AssemblyAI or Whisper.cpp processes audio + │ Output: /storage/transcripts/.json + ▼ +Stage 4 │ SUMMARISATION Transcript compacted to sentence-level objects + │ Output: /storage/transcriptionSummaries/.json + │ Speaker audio snippets: /storage/audio/speakerSnippets/ + ▼ +Stage 5 │ LLM GENERATION Prompt + summarised transcript → LLM → HTML + │ Output: /storage/documents/.html + ▼ +Stage 6 │ SPEAKER SUBSTITUTION Regex replace speakerA/B/C with real names + │ + Format conversion (HTML → PDF/DOCX/TXT) + ▼ + │ EXPORT Native OS save dialog → user's chosen location +``` + +### 3.5 IPC Communication Map + +The following IPC channels are defined between the renderer and main processes: + +| Channel | Direction | Trigger | Payload | +|---|---|---|---| +| `file_submit` | Renderer → Main | User submits step 1 form | Pipeline configuration object | +| `file_download` | Renderer → Main | User clicks Download | `{ type, speakerMap }` | +| `speaker_submit` | Renderer → Main | User confirms speaker names | Speaker name map | +| `progress` | Main → Renderer | After each pipeline stage | Stage number (1–4) | +| `speakerAudios` | Main → Renderer | After snippet extraction | Speaker audio path map | +| `error` | Main → Renderer | Any pipeline exception | Error message string | +| `get-module-names` | Renderer ↔ Main | UI init | Module list | +| `get-txt-files` | Renderer ↔ Main | UI init | Document type filenames | +| `save-txt-file` | Renderer ↔ Main | Custom type editor save | `{ filename, content }` | +| `read-txt-file` | Renderer ↔ Main | Custom type editor load | Filename | +| `delete-txt-file` | Renderer ↔ Main | Custom type editor delete | Filename | + +--- + +## 4. Technology Stack + +### 4.1 Core Runtime and Framework + +| Component | Technology | Version | Purpose | +|---|---|---|---| +| Runtime | Node.js | 19 – 24 | JavaScript execution environment | +| Desktop Framework | Electron | 39.1.1 | Cross-platform desktop application shell | +| HTTP Framework | Express | 5.1.0 | Local HTTP server (IPC supplement; API Skeleton) | +| Primary Language | JavaScript (ES2022) | — | All production modules | +| Secondary Language | TypeScript | 5.9.3 | Local transcription module, pipeline job examples | +| TypeScript Runtime | ts-node | 10.9.2 | Execute TypeScript without pre-compilation | + +### 4.2 AI and LLM Providers + +| Provider | Module | Environment Variable | Model | Mode | +|---|---|---|---|---| +| Google Gemini | `llm-gemini` | `GOOGLE_API_KEY` | gemini-2.0-flash (default) | Cloud | +| OpenAI GPT (via SAIA) | `llm-saia_openai_gpt` | `SAIA_API_KEY` | OSS 120B | Cloud | +| Alibaba Qwen3 | `qwen3-235b-a22b` | `SAIA_API_KEY` | Qwen3-235B-A22B | Cloud | + +### 4.3 Transcription Backends + +| Provider | Module | Environment Variable | Mode | Speaker Labels | +|---|---|---|---|---| +| AssemblyAI | `assembly` | `ASSEMBLYAI_API_KEY` | Cloud (remote) | Yes | +| Whisper.cpp | `whisperLocal` | None required | Local (offline) | Limited | + +### 4.4 Audio and Video Processing + +| Library | Version | Purpose | +|---|---|---| +| `fluent-ffmpeg` | Latest | Node.js wrapper for FFmpeg CLI | +| `ffmpeg-static` | Latest | Bundled static FFmpeg binary | + +Supported input container formats: any FFmpeg-compatible format (MP4, MOV, AVI, MKV, WebM for video; WAV, MP3, FLAC, M4A for audio). + +Extraction output formats: WAV (16kHz, mono), MP3, FLAC — determined per transcription module's `audioformat` property. + +### 4.5 Document Generation and Export + +| Library | Purpose | Output | +|---|---|---| +| `html-to-docx` | Convert HTML to Word document | `.docx` | +| `puppeteer` | Headless Chromium for PDF rendering | `.pdf` | +| Native file write | Plain text export | `.txt` | +| Native file write | HTML export | `.html` | + +### 4.6 Networking and Utilities + +| Library | Purpose | +|---|---| +| `axios` | HTTP client for external API calls | +| `dotenv` | Load environment variables from `.env` file | + +### 4.7 Development and Test Dependencies + +| Library | Purpose | +|---|---| +| `mocha` (v11.7.5) | Unit and integration test runner | +| `@types/node` (v24.9.2) | TypeScript Node.js type definitions | +| `@types/fluent-ffmpeg` | TypeScript FFmpeg type definitions | +| `typescript` (v5.9.3) | TypeScript compiler | +| `ts-node` (v10.9.2) | Direct TypeScript execution | + +--- + +## 5. Installation & Setup Guide + +### 5.1 Prerequisites + +Before installing V2D, ensure the following are present on the target machine: + +| Requirement | Minimum Version | Notes | +|---|---|---| +| Node.js | 19.x | Versions 19 through 24 are supported. Use `node -v` to verify. | +| npm | 9.x | Bundled with Node.js. | +| Git | Any recent | Required to clone the repository. | +| Internet connection | — | Required for cloud transcription and LLM services. | +| FFmpeg | Any recent | Bundled via `ffmpeg-static`; a separate system install is not required. | + +> **Note:** A separate system-level FFmpeg installation is not required. The `ffmpeg-static` package provides a platform-appropriate binary that is automatically used by `fluent-ffmpeg`. + +### 5.2 Obtaining the Source Code + +```bash +git clone +cd video2document +``` + +Replace `` with the actual repository URL provided by your administrator. + +### 5.3 Installing Dependencies + +From the project root directory: + +```bash +npm install +``` + +This installs all dependencies declared in `package.json`, including Electron, Puppeteer, and all service libraries. The installation may take several minutes on the first run due to Puppeteer downloading a Chromium binary. + +### 5.4 Environment Configuration + +V2D requires API keys for external services. These are provided via environment variables. + +**Option A — Local `.env` file (development / personal use):** + +Create a file named `.env` in the project root: + +```dotenv +GOOGLE_API_KEY=your_google_gemini_key +ASSEMBLYAI_API_KEY=your_assemblyai_key +SAIA_API_KEY=your_saia_platform_key +``` + +> The `.env` file is Git-ignored and will never be committed to the repository. + +**Option B — Keyserver (organisational deployment):** + +If your organisation operates the V2D keyserver, set the following variables instead: + +```dotenv +auth_username=your_keyserver_username +auth_password=your_keyserver_password +``` + +On startup, the application contacts `keyserver.dommymommy.xyz:443` and retrieves all required API keys automatically. See [Section 6.2](#62-keyserver-authentication) for details. + +### 5.5 Starting the Application + +**Linux / macOS:** + +```bash +./start.sh +``` + +Or manually: + +```bash +npm install # if not already done +npm start +``` + +**Windows:** + +``` +start.bat +``` + +Or manually from Command Prompt or PowerShell: + +```bat +npm install +npm start +``` + +The Electron window will open automatically after a brief initialisation period. + +### 5.6 Verifying the Installation + +After launch, the V2D main window should appear showing Step 1 (file selection). If the window does not appear: + +1. Check the terminal / command prompt for Node.js error output. +2. Confirm Node.js version with `node -v`. +3. Confirm `npm install` completed without errors. +4. Confirm at least one set of API credentials is present in `.env` or via keyserver. + +--- + +## 6. Configuration Guide + +### 6.1 Environment Variables Reference + +| Variable | Required By | Description | +|---|---|---| +| `GOOGLE_API_KEY` | `llm-gemini` module | Google Cloud API key with Generative Language API enabled | +| `ASSEMBLYAI_API_KEY` | `assembly` transcription module | AssemblyAI account API key | +| `SAIA_API_KEY` | `llm-saia_openai_gpt`, `qwen3` modules | SAIA platform API key for hosted LLM access | +| `auth_username` | Keyserver auth | Username credential for automatic key retrieval | +| `auth_password` | Keyserver auth | Password credential for automatic key retrieval | + +Only the variables corresponding to the modules you intend to use are strictly required. The application will report a clear error if a module is invoked without its required key. + +### 6.2 Keyserver Authentication + +The keyserver is a proprietary key distribution service hosted at `keyserver.dommymommy.xyz:443`. When credentials are provided, the startup module (`@startup.js`) performs the following sequence: + +1. Issues a `GET` request to the keyserver endpoint with `auth_username` and `auth_password` as HTTP headers. +2. The server responds with a JSON object containing API key–value pairs. +3. Keys are merged into `process.env` within the main process. +4. Keys are never forwarded to the renderer process. + +This mechanism allows teams to rotate keys centrally without redistributing `.env` files to individual users. + +### 6.3 Document Type Templates + +Document type templates control the instructions given to the LLM when generating output. They are stored as plain text files in `/storage/documentType/`. + +**Built-in templates:** + +| Filename | Purpose | +|---|---| +| `followup_report.txt` | Professional post-meeting follow-up report | +| `agenda.txt` | Reconstructed meeting agenda from transcript | +| `result_protocol.txt` | Formal meeting minutes / result protocol | +| `sprint_planning_note.txt` | Agile sprint planning session documentation | +| `custom_document.txt` | Placeholder for user-defined format | + +**Creating a custom template:** + +Templates are editable directly through the V2D UI (Custom Type Editor, accessible from the document type step) or by editing the `.txt` files directly in `/storage/documentType/`. + +Template authoring guidelines: + +- Write instructions for the LLM in clear, imperative sentences. +- Reference speaker tokens using the exact placeholder strings `speakerA`, `speakerB`, `speakerC`, etc. +- Specify the desired output structure (headings, bullet lists, tables). +- Include language instructions if multilingual output is required. +- Do **not** include the transcript itself — it is automatically appended by the pipeline. + +### 6.4 Module Configuration + +Modules are self-describing. To enable or disable a module, add or remove its `.js` file from its directory under `services/modules/`. The module will be included or excluded from all UI dropdowns automatically on next application start. + +To change the default Gemini model, edit the `model` constant in `services/modules/llm-gemini/gemini.js`. + +### 6.5 Storage Paths + +All artefact directories are located under `/storage/` at the project root. These paths are currently hard-coded and are not configurable without modifying the relevant module source files. Future versions may expose these as configuration parameters. + +--- + +## 7. Usage Guide — End User Perspective + +### 7.1 Workflow Overview + +V2D presents users with a linear six-step wizard. Steps must be completed in order. Each step requires a selection or action before the next step becomes available. + +``` +Step 1 → Step 2 → Step 3 → Step 4 → [ Processing ] → Step 5 → Step 6 +File Transcrip- Document Output Preview Download +Select tion Svc Type Format & Names +``` + +### 7.2 Step-by-Step Instructions + +#### Step 1 — Select Video or Audio File + +1. Click **Browse** or drag and drop a file onto the designated area. +2. Accepted formats: any FFmpeg-compatible video or audio file (MP4, MOV, WAV, MP3, FLAC, etc.). +3. The selected filename is displayed for confirmation. +4. Click **Next** to proceed. + +#### Step 2 — Select Transcription Service + +1. A dropdown lists all registered transcription modules. +2. Select the desired backend: + - **AssemblyAI** — cloud-based, highest accuracy, requires internet and API key. + - **Whisper Local** — offline, no API key, lower accuracy for multi-speaker content. +3. Click **Next** to proceed. + +#### Step 3 — Select Document Type + +1. A dropdown lists all document type templates found in `/storage/documentType/`. +2. Select the template matching your desired output format (e.g., "Follow-up Report"). +3. Optionally, click **Edit / Create Custom Type** to open the template editor. +4. Click **Next** to proceed. + +#### Step 4 — Select Output Format and LLM + +1. Select the export format: **PDF**, **DOCX**, **HTML**, or **TXT**. +2. Select the LLM provider from the dropdown. +3. Click **Generate Document** to begin processing. + +#### Processing Phase + +A progress bar advances through four stages: + +| Stage | Description | +|---|---| +| 1 / 4 | Extracting audio from video | +| 2 / 4 | Transcribing audio (cloud or local) | +| 3 / 4 | Generating document with LLM | +| 4 / 4 | Converting to selected output format | + +Processing time depends on recording length and network speed. A 30-minute recording typically completes in 3–8 minutes with cloud services. + +#### Step 5 — Review Document and Assign Speaker Names + +1. A preview of the generated document is displayed. +2. For each detected speaker (labelled **Speaker A**, **Speaker B**, etc.): + - A short audio clip of that speaker is playable for identification. + - A text field allows entry of the speaker's real name. +3. Click **Apply Names** to replace all speaker placeholders in the document. +4. Review the updated preview. + +#### Step 6 — Download / Export + +1. Click **Download**. +2. A native OS save dialog opens. +3. Choose the destination path and filename. +4. The file is saved in the format selected in Step 4. + +### 7.3 UI Language Selection + +The UI language can be changed via the language selector (flag icons). Currently supported languages: English, German. The selection applies immediately to all UI text. + +### 7.4 Help Page + +A built-in help page is accessible from the main toolbar. It provides concise per-step guidance and explains the purpose of each configuration option. + +### 7.5 Error Messages + +If the pipeline encounters an error, a notification is displayed in the UI with a description of the failure. Common causes include: + +- Missing or invalid API key for the selected service +- Network connectivity loss during cloud transcription +- Unsupported or corrupted input file +- Insufficient disk space in the `/storage/` directory + +--- + +## 8. API Documentation + +### 8.1 Status + +The REST API component (`/API-Skeleton/`) is a **non-integrated template**. It defines the intended endpoint structure for a future server-mode version of V2D. The current production application communicates exclusively via Electron IPC. + +This section documents both the existing IPC interface (authoritative) and the planned REST API (informational). + +### 8.2 IPC API (Production) + +The IPC interface is the authoritative communication mechanism between the renderer and main processes. It is accessed via the `window.electron` object injected by the preload script. + +#### `window.electron.submitFile(payload)` + +Initiates the full processing pipeline. + +**Direction:** Renderer → Main + +**Parameters:** + +```typescript +interface SubmitFilePayload { + video: { + module: string; // e.g. "extraction-video-to-audio" + inputVideoPath: string; // Absolute path to input file + }; + transcription: { + module: string; // e.g. "assembly" + }; + document: { + module: string; // e.g. "llm-gemini" + type: string; // Document type template name (without .txt) + outputType: "pdf" | "docx" | "html" | "txt"; + }; +} +``` + +**Example:** + +```javascript +window.electron.submitFile({ + video: { + module: "extraction-video-to-audio", + inputVideoPath: "/Users/name/recordings/meeting.mp4" + }, + transcription: { module: "assembly" }, + document: { + module: "llm-gemini", + type: "followup_report", + outputType: "pdf" + } +}); +``` + +#### `window.electron.downloadFile(payload)` + +Triggers the final document export. + +**Direction:** Renderer → Main + +**Parameters:** + +```typescript +interface DownloadPayload { + type: "pdf" | "docx" | "html" | "txt"; + speakerMap: Record; // e.g. { "speakerA": "Alice", "speakerB": "Bob" } +} +``` + +#### `window.electron.onProgress(callback)` + +Registers a listener for pipeline progress events. + +**Direction:** Main → Renderer + +**Callback parameter:** `(stage: number) => void` — stage is an integer 1 through 4. + +#### `window.electron.onSpeakerAudios(callback)` + +Receives speaker audio clip paths after diarisation. + +**Direction:** Main → Renderer + +**Callback parameter:** +```typescript +(speakerMap: Record) => void +``` + +#### `window.electron.onError(callback)` + +Registers a listener for pipeline error events. + +**Direction:** Main → Renderer + +**Callback parameter:** `(message: string) => void` + +#### `window.electron.getModuleNames()` + +Returns the list of registered module names, grouped by type. + +**Direction:** Renderer ↔ Main (invoke/handle) + +#### `window.electron.getTxtFiles()` + +Returns filenames of all document type templates. + +**Direction:** Renderer ↔ Main (invoke/handle) + +#### `window.electron.saveTxtFile(filename, content)` + +Persists a new or updated document type template. + +**Direction:** Renderer ↔ Main (invoke/handle) + +#### `window.electron.readTxtFile(filename)` + +Returns the content of a named document type template. + +**Direction:** Renderer ↔ Main (invoke/handle) + +#### `window.electron.deleteTxtFile(filename)` + +Deletes a named document type template. + +**Direction:** Renderer ↔ Main (invoke/handle) + +### 8.3 REST API Skeleton (Planned — Not Integrated) + +**Base URL:** `http://localhost:3000` + +**Authentication:** Not yet defined. + +#### Health Check + +``` +GET /api/v1/healthcheck +``` + +**Response:** `200 OK` — `"running"` + +#### Video Endpoints + +| Method | Path | Description | Status | +|---|---|---|---| +| `POST` | `/videos` | Upload a video file for processing | Planned | +| `GET` | `/videos` | List all processed videos | Planned | +| `GET` | `/videos/:id` | Retrieve a specific video record | Planned | +| `DELETE` | `/videos/:id` | Delete a video record | Planned | + +#### Document Endpoints + +| Method | Path | Description | Status | +|---|---|---|---| +| `GET` | `/documents` | List all generated documents | Planned | +| `GET` | `/documents/:id` | Retrieve a specific document | Planned | +| `DELETE` | `/documents/:id` | Delete a document record | Planned | + +--- + +## 9. Data Model Description + +### 9.1 Primary Data Artefacts + +V2D does not use a relational database in the current version. All persistent data is stored as files in structured directories under `/storage/`. + +### 9.2 Raw Transcript (AssemblyAI Output) + +Stored in: `/storage/transcripts/.json` + +```typescript +interface TranscriptWord { + text: string; // Individual word token + speaker: string; // Speaker label, e.g. "A", "B" + start: number; // Word start time, milliseconds + end: number; // Word end time, milliseconds + confidence?: number; +} + +interface RawTranscript { + id: string; + status: "completed" | "error"; + text: string; // Full transcript as single string + words: TranscriptWord[]; + language_code?: string; + utterances?: TranscriptUtterance[]; +} +``` + +### 9.3 Summarised Transcript + +Stored in: `/storage/transcriptionSummaries/.json` + +Produced by `transcriptionSummarizer2.js`. Word-level tokens are grouped into complete sentences per speaker. + +```typescript +interface SummarisedSegment { + speaker: string; // Speaker label, e.g. "A" + sentence: string; // Reconstructed sentence text + start: number; // Segment start time, milliseconds + end: number; // Segment end time, milliseconds +} + +type SummarisedTranscript = SummarisedSegment[]; +``` + +### 9.4 Speaker Audio Snippet Map + +Stored in memory; audio files written to `/storage/audio/speakerSnippets/`. + +```typescript +interface SpeakerSnippetMap { + [speakerKey: string]: { // e.g. "speakerA" + src: string; // Absolute path to WAV snippet file + name: string; // Same as speakerKey + }; +} +``` + +### 9.5 Pipeline Input Payload + +Passed via IPC from renderer to main process when the user initiates processing. + +```typescript +interface PipelinePayload { + video: { + module: string; + inputVideoPath: string; + }; + transcription: { + module: string; + }; + document: { + module: string; + type: string; + outputType: "pdf" | "docx" | "html" | "txt"; + }; +} +``` + +### 9.6 Module Registry Entry + +Each entry in the global `mapFunctions` Map conforms to: + +```typescript +interface ModuleDefinition { + name: string; + type: string; + displayname: string; + description: string; + audioformat?: string; + function: (parameter: unknown) => Promise; +} +``` + +### 9.7 Document Type Template + +Stored in: `/storage/documentType/.txt` + +Plain text files containing LLM prompt instructions. No structured schema; content is author-defined. Templates are prepended to the summarised transcript before submission to the LLM. + +--- + +## 10. Security Considerations + +### 10.1 Secret Management + +**Threat:** API key exposure in source code or version control. + +**Mitigations in place:** + +- `.env` is listed in `.gitignore` and is never committed. +- API keys are loaded at runtime via `dotenv` or the keyserver, not hard-coded. +- Keys are stored only in `process.env` within the main process. +- The preload script's `contextBridge` exposes no key values to the renderer process. +- The GitLab CI/CD pipeline injects keys via protected CI/CD variables, not plain-text files. + +**Residual risk:** If a user manually adds API keys to a tracked source file, they will be committed. Developer education and pre-commit hook enforcement (e.g., `git-secrets`) are recommended mitigations. + +### 10.2 Electron Security Model + +| Control | Status | Notes | +|---|---|---| +| `nodeIntegration: false` | Enabled | Renderer has no direct Node.js access | +| `contextIsolation: true` | Enabled | Renderer and preload run in separate contexts | +| `sandbox` (preload) | Enabled | Limits preload capabilities | +| `webSecurity` | Default (enabled) | Standard Chromium web security applies | +| Content Security Policy | Not explicitly set | Recommended for production hardening | + +**Recommendation:** Add an explicit Content Security Policy header to the `index.html` file to prevent XSS attacks and restrict resource loading origins. + +### 10.3 Data Handling + +**Local data:** Transcripts, audio snippets, and generated documents are stored in the local `/storage/` directory. These files contain the full text of the processed meeting or lecture. + +**Implications:** + +- Files persist after the session ends and are not automatically purged. +- On shared machines, other users with file system access can read these artefacts. +- Organisations handling sensitive content (e.g., confidential meetings) should restrict operating system file permissions on the V2D installation directory. +- A storage clean-up mechanism (scheduled or on-demand) is recommended for future versions. + +**Cloud data:** When using cloud transcription (AssemblyAI) or cloud LLMs (Gemini, SAIA), audio and transcript content is transmitted to external services. Users should review the data retention and privacy policies of each provider before processing sensitive content. + +### 10.4 Network Security + +- All external API calls use HTTPS. +- The keyserver endpoint (`keyserver.dommymommy.xyz:443`) uses TLS. +- No inbound network ports are opened by the application in normal operation. +- The API Skeleton (Express server) would open port 3000 if started; this is not part of the default startup. + +### 10.5 Input Validation + +- File path inputs are passed to FFmpeg via the `fluent-ffmpeg` library, which provides a layer of sanitisation. +- Document type template names are used to construct file paths; input from the UI should be validated to prevent path traversal (e.g., filenames containing `../`). This is an identified hardening item. + +### 10.6 Risk Assessment Summary + +| Risk | Likelihood | Impact | Mitigation Status | +|---|---|---|---| +| API key committed to version control | Low | High | Mitigated (`.gitignore`, CI variables) | +| Sensitive meeting content transmitted to cloud | Medium | High | Documented; user decision | +| Local artefact exposure on shared machines | Medium | Medium | Partially mitigated (user responsibility) | +| Path traversal in template file naming | Low | Medium | Not yet mitigated — requires input sanitisation | +| XSS in generated HTML document preview | Low | Low | Partially mitigated by Electron sandbox | +| Keyserver unavailability blocking startup | Medium | Medium | Fallback: local `.env` | + +--- + +## 11. Performance & Scalability Notes + +### 11.1 Performance Characteristics + +| Stage | Bottleneck | Typical Duration (30-min recording) | +|---|---|---| +| Audio extraction | Disk I/O + FFmpeg CPU | 10–30 seconds | +| Cloud transcription (AssemblyAI) | Network + provider queue | 2–5 minutes | +| Local transcription (Whisper) | CPU / memory | 5–20 minutes | +| Transcript summarisation | CPU (JavaScript) | < 5 seconds | +| LLM document generation | Network + provider latency | 20–90 seconds | +| Document conversion (PDF) | Puppeteer / Chromium | 5–15 seconds | +| Speaker snippet extraction | Disk I/O + FFmpeg | 10–30 seconds | + +**Total (cloud, typical):** 3–8 minutes for a 30-minute recording. + +**Total (local Whisper):** 8–25 minutes depending on hardware. + +### 11.2 Memory Consumption + +- Electron base overhead: ~150–300 MB RAM. +- Puppeteer (PDF generation): additional ~200–400 MB during conversion. +- Long transcripts loaded into memory as JSON: typically < 10 MB. +- Speaker audio snippets: 1–5 MB each; total depends on speaker count. + +Peak memory usage for a typical session: 500–800 MB. Ensure the host machine has at least 4 GB RAM available for comfortable operation. + +### 11.3 Disk Space Requirements + +| Artefact Type | Typical Size per Session | +|---|---| +| Extracted audio (WAV 16kHz mono, 30 min) | ~50 MB | +| Raw transcript JSON | 0.5–2 MB | +| Summarised transcript JSON | 0.1–0.5 MB | +| Speaker audio snippets (WAV) | 0.5–5 MB total | +| Generated HTML document | 10–100 KB | +| PDF export | 50–500 KB | +| DOCX export | 50–200 KB | + +Accumulated storage can grow significantly over time if artefacts are not periodically cleared. + +### 11.4 Scalability Constraints + +The current architecture is **single-user, single-session**. It is not designed for concurrent pipeline executions and has the following inherent constraints: + +- Only one pipeline job can run at a time within a single Electron instance. +- The `mapFunctions` global Map and `storage/` directory are shared across all sessions of the same instance. +- The application does not implement job queuing. + +For multi-user or server-side deployment, the REST API Skeleton provides a foundation, but significant development is required to add persistence, concurrency control, and job management. + +### 11.5 Operational Impact Analysis + +| Scenario | Impact | +|---|---| +| AssemblyAI API outage | Transcription unavailable; local Whisper fallback is available | +| SAIA platform outage | Qwen3 and GPT modules unavailable; Gemini fallback is available | +| Google Gemini API outage | Gemini module unavailable; SAIA-hosted models are available | +| Keyserver outage | Application cannot retrieve keys; local `.env` fallback required | +| Puppeteer Chromium failure | PDF export unavailable; HTML, DOCX, and TXT exports remain functional | +| FFmpeg binary failure | Audio extraction fails; entire pipeline blocked | + +--- + +## 12. Deployment Guide + +### 12.1 Local Development Deployment + +Follow [Section 5](#5-installation--setup-guide) exactly. This is the standard and only fully supported deployment mode. + +### 12.2 Electron Package Build (Distribution) + +V2D can be packaged into a distributable executable using `electron-builder` or `electron-forge`. Neither is currently configured in `package.json`; the following steps describe the integration procedure. + +**Install a build tool:** + +```bash +npm install --save-dev electron-builder +``` + +**Add build configuration to `package.json`:** + +```json +{ + "build": { + "appId": "com.your-org.video2document", + "productName": "Video2Document", + "directories": { "output": "dist" }, + "files": ["main.js", "requires.js", "electron/", "services/", "storage/documentType/"], + "mac": { "target": "dmg" }, + "win": { "target": "nsis" }, + "linux": { "target": "AppImage" } + } +} +``` + +**Build:** + +```bash +npx electron-builder build --mac --win --linux +``` + +> **Important:** Do not bundle `.env` files or API keys into the distribution package. The keyserver mechanism or user-provided `.env` files should be used in distributed builds. + +### 12.3 GitLab CI/CD Pipeline + +The `.gitlab-ci.yml` file defines a single `test` stage: + +```yaml +image: node:latest + +stages: + - test + +job-test: + stage: test + script: + - npm install + - echo "ASSEMBLYAI_API_KEY=$apikey_assembly" > .env + - echo "GOOGLE_API_KEY=$apikey_gemini" >> .env + - echo "SAIA_API_KEY=$apikey_saia" >> .env + - npm test +``` + +**CI/CD variables required (set in GitLab project settings → CI/CD → Variables):** + +| Variable | Description | +|---|---| +| `apikey_assembly` | AssemblyAI API key | +| `apikey_gemini` | Google Gemini API key | +| `apikey_saia` | SAIA platform API key | + +Mark all variables as **Protected** and **Masked** in GitLab settings to prevent exposure in job logs. + +### 12.4 Adding the Application to a New System + +For end-user distribution without requiring source code access: + +1. Build the Electron package per Section 12.2. +2. Distribute the installer (`*.dmg`, `*.exe`, or `*.AppImage`). +3. Instruct users to create a `.env` file in the application's user data directory, or configure keyserver credentials. + +> **Note:** The `storage/` directory must be writable at runtime. Electron packages typically store user data in the OS-standard application data directory. Path configuration may need adjustment for packaged builds. + +### 12.5 Server-Side Deployment (Future) + +The API Skeleton (`/API-Skeleton/`) provides an Express server template for eventual server-side deployment. To productionise: + +1. Implement the stub endpoints in `video_Router.js` and `document_Router.js`. +2. Add a persistent database (e.g., PostgreSQL with an ORM). +3. Add authentication middleware. +4. Run behind a reverse proxy (nginx, Caddy) with TLS termination. +5. Containerise with Docker for consistent deployments. + +--- + +## 13. Testing Strategy + +### 13.1 Overview + +V2D employs Mocha as the test runner. Tests are located in `/test/unit/test.js` (comprehensive module tests) and `/test/integration/` (service-specific integration tests). + +### 13.2 Test Suite Structure + +| Suite | File | Test Count | Coverage Area | +|---|---|---|---| +| Audio Extraction | `test/unit/test.js` | 4 | FFmpeg extraction, format variants, error cases | +| Audio Transcription | `test/unit/test.js` | 2 | AssemblyAI integration, invalid input handling | +| Transcript Summarisation | `test/unit/test.js` | 4 | Summariser v1 and v2, error cases | +| LLM Document Generation | `test/unit/test.js` | 6 | ChatGPT, Gemini, Qwen3, missing template error | +| Audio Snippets | `test/unit/test.js` | 3 | Speaker snippet extraction, error handling | +| AssemblyAI Integration | `test/integration/assembly.test.js` | Variable | End-to-end transcription | +| Summariser Integration | `test/integration/transcriptionSummarizerTest.js` | Variable | Summariser with real transcript | +| Gemini Integration | `test/integration/gemini/test-gemini.js` | Variable | End-to-end Gemini generation | + +### 13.3 Running Tests + +**Full test suite:** + +```bash +npm test +``` + +This executes: `mocha ./test/unit/test.js` + +**Individual integration tests:** + +```bash +node test/integration/assembly.test.js +node test/integration/gemini/test-gemini.js +``` + +### 13.4 Test Timeouts + +| Category | Timeout | +|---|---| +| Audio extraction | 3,000 ms | +| Transcription (cloud) | 120,000 ms | +| LLM generation | 120,000 ms | +| Document conversion | 30,000 ms | + +### 13.5 Test Environment Requirements + +All tests that invoke external APIs require valid credentials in `.env` or via the keyserver. Tests will fail with authentication errors if credentials are absent. + +CI/CD injects credentials as GitLab CI variables (see [Section 12.3](#123-gitlab-cicd-pipeline)). + +### 13.6 Coverage Gaps + +| Area | Status | Notes | +|---|---|---| +| UI / Renderer process | Not tested | No UI automation tests exist | +| IPC channel handling | Not tested | No mock IPC tests | +| Local Whisper transcription | Incomplete | Module is TypeScript, partially implemented | +| Document conversion | Not tested independently | Covered indirectly by LLM tests | +| Speaker name replacement | Not tested | `replaceSpeaker.js` lacks unit tests | +| API Skeleton endpoints | Not tested | Skeleton only | + +### 13.7 Recommended Additional Tests + +1. Unit tests for `replaceSpeaker.js` with edge cases (names with special characters, multiple occurrences). +2. Unit tests for `transcriptionSummarizer2.js` with synthetic transcript JSON. +3. Mocked IPC tests for the main process handlers in `main.js`. +4. End-to-end UI tests using a framework such as Playwright for Electron. +5. Input validation tests for file path injection and template name sanitisation. + +--- + +## 14. Maintenance & Support Plan + +### 14.1 Dependency Management + +| Activity | Frequency | Responsibility | +|---|---|---| +| Review `npm outdated` for security advisories | Monthly | Developer/Admin | +| Update Electron to latest stable version | Per major release | Developer | +| Update Puppeteer Chromium dependency | Per major release | Developer | +| Review external API provider changelog (AssemblyAI, Gemini, SAIA) | Monthly | Developer | +| Rotate API keys | Per organisation policy | Administrator | + +Run `npm audit` regularly and address high-severity advisories promptly. + +### 14.2 Storage Maintenance + +The `/storage/` directory accumulates artefacts indefinitely. A maintenance schedule is recommended: + +| Artefact | Retention Recommendation | +|---|---| +| Raw audio extracts | Delete after session or after 7 days | +| Raw transcripts (JSON) | Retain for 30 days for debugging | +| Summarised transcripts | Retain for 30 days | +| Speaker audio snippets | Delete after session | +| Generated HTML documents | Retain until user exports final document | + +A clean-up script or UI option to purge artefacts is recommended for future versions. + +### 14.3 Adding a New Module + +To add a new LLM or transcription provider: + +1. Create a directory under `services/modules//`. +2. Create a `.js` file following the module interface template. +3. Export the module object with a unique `name` field. +4. Add the required API key to `.env` and to the keyserver. +5. Restart the application — the module is auto-discovered and appears in UI dropdowns. +6. Write unit tests in `test/unit/test.js` following existing patterns. + +No changes to `main.js`, the module handler, or the UI are required. + +### 14.4 Monitoring and Logging + +V2D currently logs to `console.log` / `console.error` in the main process. In a production distribution, these logs are accessible via: + +- **macOS:** `~/Library/Logs//main.log` +- **Windows:** `%APPDATA%\\logs\main.log` +- **Linux:** `~/.config//logs/main.log` + +(Exact paths depend on the `app.getPath('userData')` value set in the packaged application.) + +Structured logging (e.g., using the `winston` library) and log rotation are recommended for operational deployments. + +### 14.5 Support Channels + +| Channel | Use | +|---|---| +| GitLab Issues | Bug reports, feature requests | +| GitLab CI/CD | Automated regression testing | +| README.md | End-user setup guidance | +| documentation.md | Developer architectural reference | +| This document | Comprehensive operational reference | + +--- + +## 15. Limitations & Known Issues + +### 15.1 Functional Limitations + +| ID | Limitation | Affected Feature | Workaround | +|---|---|---|---| +| LIM-01 | Local Whisper transcription is not fully implemented | Transcription | Use AssemblyAI | +| LIM-02 | REST API is a non-integrated skeleton | API access | Use Electron IPC (desktop app) | +| LIM-03 | No database persistence; artefacts are flat files | Session history | Manual file management | +| LIM-04 | Single concurrent pipeline only | Throughput | Process files sequentially | +| LIM-05 | Speaker identification is label-based (A, B, C), not biometric | Speaker accuracy | Manual name assignment in Step 5 | +| LIM-06 | Custom template names are not validated for path traversal | Security | Avoid special characters in template names | +| LIM-07 | Storage paths are hard-coded in module source files | Portability | Edit source files to relocate storage | +| LIM-08 | No automatic artefact clean-up | Disk usage | Manually clear `/storage/` directories | +| LIM-09 | Packaged Electron distribution not yet configured | Distribution | Run from source | +| LIM-10 | No Content Security Policy defined | Security | Manual CSP header addition | + +### 15.2 Known Issues + +| ID | Issue | Severity | Status | +|---|---|---|---| +| KI-01 | Whisper local module (`whisperLocal.ts`) is incomplete; invoking it will fail | High | Open | +| KI-02 | Long transcripts may exceed LLM context window limits, truncating output | Medium | Open | +| KI-03 | Puppeteer may fail on systems with strict sandbox policies (e.g., Docker without `--no-sandbox`) | Medium | Workaround: add `--no-sandbox` flag | +| KI-04 | Speaker diarisation accuracy decreases with more than 4 concurrent speakers | Medium | Open | +| KI-05 | Mixed JS/TS codebase causes inconsistent linting and type coverage | Low | Open | +| KI-06 | No validation that input file is readable/non-corrupt before pipeline start | Low | Open | + +--- + +## 16. Future Improvements / Roadmap + +The following improvements are identified based on current limitations, security analysis, and operational requirements. Items are grouped by priority. + +### 16.1 Priority 1 — Critical Gaps + +| Item | Description | +|---|---| +| Complete Whisper local transcription | Fully implement `whisperLocal.ts` for offline, privacy-preserving operation | +| Input path validation | Sanitise all user-provided file paths and template names to prevent traversal attacks | +| Content Security Policy | Add explicit CSP headers to `index.html` | +| Artefact lifecycle management | Implement automatic or on-demand clean-up of `/storage/` artefacts | + +### 16.2 Priority 2 — Important Improvements + +| Item | Description | +|---|---| +| Electron distribution packaging | Configure `electron-builder` for one-click installer distribution | +| Structured logging | Replace `console.log` with a structured logger (`winston`) with log rotation | +| Context-length handling | Split long transcripts into chunks if they approach LLM token limits | +| TypeScript migration | Progressively convert all modules to TypeScript for type safety and tooling | +| Coverage expansion | Add UI automation tests (Playwright for Electron), IPC mock tests, and replacement module tests | + +### 16.3 Priority 3 — Feature Enhancements + +| Item | Description | +|---|---| +| REST API integration | Integrate the API Skeleton into the production application for headless/server operation | +| Session history | Implement a lightweight SQLite database to persist session metadata and enable document retrieval | +| Multi-language transcription | Explicitly expose language selection to the user for improved transcription accuracy | +| Concurrent pipeline support | Add a job queue to allow multiple files to be processed sequentially without UI blocking | +| Streaming progress | Display detailed sub-step progress (e.g., transcription percentage) rather than four discrete stages | + +### 16.4 Priority 4 — Strategic / Long-Term + +| Item | Description | +|---|---| +| Web / SaaS mode | Deploy V2D as a web application for browser access without installation | +| Speaker biometrics | Integrate voice-print identification to automatically name known speakers | +| Custom LLM hosting | Support self-hosted LLM endpoints (Ollama, LM Studio) for full on-premise operation | +| Document templates marketplace | Allow sharing and importing community-created document type templates | +| Enterprise SSO | Integrate with SAML/OIDC for organisational user management | + +--- + +## 17. Glossary + +| Term | Definition | +|---|---| +| **API (Application Programming Interface)** | A defined interface that allows software components to communicate with each other. | +| **AssemblyAI** | A cloud-based AI transcription service that converts audio to text with speaker diarisation support. | +| **Artefact** | An intermediate file produced and consumed by a pipeline stage (e.g., extracted audio, raw transcript, HTML document). | +| **Context Bridge** | Electron's mechanism (`contextBridge`) for safely exposing main-process APIs to the renderer without granting full Node.js access. | +| **Diarisation (Speaker Diarisation)** | The process of partitioning a transcript by speaker identity, labelling segments as "Speaker A", "Speaker B", etc. | +| **Dotenv** | A utility that loads environment variables from a `.env` file into `process.env` at application startup. | +| **Electron** | An open-source framework by GitHub/Microsoft for building cross-platform desktop applications using web technologies (HTML, CSS, JavaScript). | +| **FFmpeg** | A widely used open-source multimedia processing library supporting encoding, decoding, and conversion of audio and video. | +| **fluent-ffmpeg** | A Node.js library providing a fluent, chainable API for invoking FFmpeg operations. | +| **IPC (Inter-Process Communication)** | The mechanism Electron uses to pass messages between the main process (Node.js) and the renderer process (Chromium). | +| **Keyserver** | A custom internal service (`keyserver.dommymommy.xyz`) that distributes API keys to authenticated V2D instances at runtime. | +| **LLM (Large Language Model)** | A class of AI model trained on large text corpora, capable of generating coherent text given a prompt. Examples: GPT, Gemini, Qwen3. | +| **mapFunctions** | The global JavaScript `Map` object in V2D's main process that stores all registered module objects, keyed by module name. | +| **Module** | A self-contained unit of functionality in V2D that conforms to the standard module interface and is auto-discovered at startup. | +| **Module Handler** | The utility (`module-handler.js`) responsible for dynamically loading module files and populating `mapFunctions`. | +| **Mocha** | A JavaScript test framework for Node.js that provides test suite structure, assertions, and reporting. | +| **npm** | Node Package Manager — the default package registry and dependency management tool for Node.js. | +| **Preload Script** | A Node.js script (`preload.js`) that runs in a privileged context in Electron and bridges the renderer and main processes via `contextBridge`. | +| **Prompt Template** | A plain-text file containing LLM instructions that define the structure and style of the generated document. | +| **Puppeteer** | A Node.js library that controls a headless Chromium browser, used in V2D for HTML-to-PDF conversion. | +| **Renderer Process** | The Chromium browser process in Electron that renders the application UI. It runs in a sandboxed environment without direct Node.js access. | +| **SAIA** | An academic cloud computing platform that hosts selected LLM models (including Qwen3 and GPT variants) accessible via API. | +| **Speaker Placeholder** | A temporary token (e.g., `speakerA`, `speakerB`) inserted by the LLM generation step and later replaced with the speaker's real name. | +| **Transcript** | The textual output of the transcription step, containing the spoken words with associated speaker labels and timestamps. | +| **V2D** | Abbreviation for Video2Document — the name of this software system. | +| **Whisper / Whisper.cpp** | An open-source speech recognition model by OpenAI. Whisper.cpp is a C++ port that runs locally without network access. | + +--- + +*End of Document* + +--- + +> **Document Control** +> +> | Field | Value | +> |---|---| +> | **Title** | Video2Document — Software Documentation Package | +> | **Version** | 1.0.0 | +> | **Standard** | ISO/IEC/IEEE 26514:2022 | +> | **Generated** | 2026-02-22 | +> | **Project** | video2document (WISE 2025/2026) | +> | **Status** | Release Candidate | diff --git a/SOFTWARE_DOCUMENTATION.pdf b/SOFTWARE_DOCUMENTATION.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5744e5c076a91c2e04ddd5dc580973c3d9d95cce GIT binary patch literal 219300 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%0D@P~knn883ij?zB~3i^2dLa*k_67~O{5UwUUxlo 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

OO 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 literal 0 HcmV?d00001