A web application that records audio, transcribes it using OpenAI Whisper, and cleans up the transcription using Google Gemini AI.
- Frontend: Angular 20 with Tailwind CSS
- Backend: Node.js + Express + TypeScript
- AI: OpenAI Whisper + Google Gemini
- Docker and Docker Compose
- OpenAI API key
- Google Gemini API key
# Set up environment variables
cd backend
cp .env.example .env
# Edit .env and add your API keys
# Start with Docker
docker-compose up -d
# Or use published images
docker-compose -f docker-compose.prod.yml up -d# Backend
cd backend
npm install
npm run dev # Port 3050
# Frontend
cd frontend
npm install
npm start # Port 4200
# Tests
npm test # Run from backend or frontendThe project includes GitHub Actions workflow that builds and publishes Docker images to ghcr.io on every push to master.
# Pull and run published images
docker-compose -f docker-compose.prod.yml up -dFor production, use nginx reverse proxy to route /api/* requests to the backend.
MIT