A web-based application that allows users to record audio in Hebrew or English, save recordings locally, and transcribe them using OpenAI's Whisper model.
- Record audio in Hebrew or English
- Save recordings locally
- Transcribe recordings using OpenAI's Whisper model
- Generate titles for recordings using OpenAI's GPT model
- View history of recordings with their transcriptions
- Play back recorded audio
- Calendar view showing recording dates with indicators
- Tag system for organizing recordings
- Continue recording functionality to add to existing transcriptions
- Merge multiple transcriptions into a single document
- Non-intrusive notification system
- Responsive three-column layout design
- Node.js (v14 or higher)
- npm
- OpenAI API key
- Clone the repository
- Install dependencies:
npm install - Create a
.envfile in the root directory with the following content:ReplaceOPENAI_API_KEY=your_openai_api_key_here PORT=3000your_openai_api_key_herewith your actual OpenAI API key.
- Start the server:
node backend/server.js - Open your browser and navigate to
http://localhost:3000 - Select a language (English or Hebrew)
- Click the microphone button to start recording
- Click "Save" to save the recording and transcribe it, or "Cancel" to discard it
- View the transcription result
- Access previous recordings from the history panel on the left
frontend/- Contains all frontend files (HTML, CSS, JavaScript)app.js- Main application logicindex.html- Main application HTMLstyles.css- Main application stylestags.html&tags.js- Tag filtering interfacetests/- Frontend unit tests
backend/- Contains the Node.js server codeserver.js- Express server implementationserver.test.js- Server tests
e2e-tests/- End-to-end tests using Playwrightuploads/- Temporary storage for uploaded audio files (not included in repo)recordings/- Storage for processed recordings and metadata (not included in repo)memory-bank/- Project documentation and progress trackingtrack-work.md- Task tracking with completion status
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express
- APIs: OpenAI Whisper for transcription, OpenAI GPT for title generation
- Audio Recording: Web Audio API and MediaRecorder API
- Testing: Jest for unit tests, Playwright for end-to-end testing
- UI: Material Design principles for components
- Storage: Local file system for recordings and metadata
Run unit tests with Jest:
npm test
Run Playwright tests:
npm run test:e2e
The E2E tests use mocking to avoid microphone permission prompts and validate key functionality like:
- Recording creation and display
- Calendar functionality and red dot indicators
- Popup menu display and interaction
- Tag filtering