Skip to content

sfeir-open-source/talk-control

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

648 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TalkControl

version license open issues CI develop

TalkControl lets speakers remotely control their slideshow from any device — phone, tablet, or second screen — via a web interface synchronized with the presentation.

Requirements

  • Node.js 24 (LTS)
  • npm 10+

Getting started

npm install --legacy-peer-deps
npm start

Then open a browser at http://localhost:3000 (controller).

The app starts three services in parallel:

Service Port Description
Controller 3000 Remote control interface (Vite dev server)
Server 3001 Express 5 WebSocket server
Showcase 3002 Static file server for the presentation

Development

# Run in watch mode
npm run test:watch

# Unit + integration tests (Vitest, jsdom)
npm test

# Web component tests (Vitest browser mode, Playwright)
npm run test:components

# End-to-end tests (Playwright)
npm run test:e2e

# Build for production
npm run build

# Lint (ESLint 9 flat config)
npm run lint

# Coverage report
npm run coverage

Documentation

npm run docs:dev    # Local VitePress dev server
npm run docs:build  # Build static docs

Tech stack

Concern Tool
Runtime Node.js 24 LTS
Language TypeScript (strict)
Bundler Vite 5
Server Express 5 + Socket.IO 4
Tests Vitest 4 (jsdom + browser mode), Playwright
Linter ESLint 9 flat config
Docs VitePress

Contribute

See CONTRIBUTING.md for commit conventions and pull request guidelines. Issues: github.com/sfeir-open-source/talk-control/issues

Troubleshoot

Error: listen EADDRINUSE :::3001 — another process holds the port:

lsof -i :3001
kill -9 <PID>

About

This project aims to make speakers' life easier by supplying an app to remotely control their slideshow.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 41.7%
  • TypeScript 22.4%
  • CSS 14.7%
  • HTML 14.3%
  • SCSS 6.7%
  • Shell 0.2%