Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 2.08 KB

File metadata and controls

40 lines (28 loc) · 2.08 KB

Contributing to TechDemoForge

Thank you for your interest in TechDemoForge! This project aims to be the most technically honest engine for technical demo generation. We prioritize local-first architecture and verifiable storyboard planning.

Development Setup

We support two primary development paths:

1. Local (Faster Iteration)

  • Backend: cd backend && python -m venv venv && pip install -r requirements.txt
  • Frontend: cd frontend && npm install
  • FFmpeg: Must be installed on your host system.

2. Docker (Consistent Environment)

  • Run docker-compose up --build.
  • The backend/data directory is bind-mounted to the host, so your projects persist across container restarts.

Codebase Map

  • backend/app/providers/: Start here if you want to add or modify provider logic (LLMs, TTS, Video).
  • backend/app/services/job_service.py: Internal background job orchestrator.
  • backend/app/services/rendering.py: FFmpeg multiplexing and scene assembly logic.
  • frontend/components/: Core UI components including the capability matrix and storyboard editor.

Adding a New Provider

When adding a new provider (e.g., OpenAI, ElevenLabs):

  1. Create a new adapter in backend/app/providers/.
  2. Ensure it implements the same interface as the minimax and mock providers.
  3. Important: Always maintain parity with the mock provider. Every new capability should have a deterministic offline fallback to keep the repository accessible to testers.

PR Guidelines

  • Technical Honesty: Documentation and tooltips should accurately reflect the status of an integration (e.g., "Wired when configured").
  • Local-First: Avoid adding mandatory cloud dependencies or databases.
  • Provider Isolation: Logic for specific APIs should stay within the providers/ layer.
  • Mock Parity: Do not break the ability to run the full workflow offline using mock providers.

Ethics & Safety

TechDemoForge is intended for technical education and engineering communication. Do not submit PRs that add features for generating misleading content or bypassing vendor safety filters.