Releases: hacky1997/voice-based-email-for-blind
Releases · hacky1997/voice-based-email-for-blind
v2.0.0 — Complete Rewrite: PWA + OAuth2 + Multi-provider IMAP
What's New in v2.0.0
This is a complete rewrite of the original 2019 voice email project.
🔐 Authentication
- Gmail — Proper OAuth2 via Google API (no password ever stored)
- Yahoo Mail — App Password support over IMAP/SMTP
- Any IMAP provider — Generic IMAP/SMTP with configurable host/port
📱 Progressive Web App (Mobile)
- Installable on any phone via browser (no app store)
- Works on Android (Chrome) and iOS (Safari)
- Voice input via Web Speech API — no server-side audio files
- Offline shell caching via Service Worker
- Dark, accessible UI optimised for touch
✉️ Email Features
- Send email by voice or keyboard
- Read inbox with sender, subject, and body
- Read email aloud using text-to-speech
- Reply to emails by voice
- Delete emails (moves to trash)
- Mark as read
- Contact book with voice-search autocomplete
🏗 Architecture
- Modular Flask REST API backend
- Separate
auth/,email_client/packages - Environment-based config via
.env(no hardcoded credentials) - Docker + Caddy for automatic HTTPS
- Deployable to Railway or Fly.io in ~5 minutes
🧪 Tests
- 45 tests across API routes, contact CRUD, and email utilities
- Fully mocked — no real email account needed to run tests
make testormake test-covfor coverage report
⚙️ CI/CD
- CircleCI pipeline: lint → test → Docker smoke test
- Docker image built and validated on every
mainpush
Quick Start
git clone https://github.com/hacky1997/voice-based-email-for-blind.git
cd voice-based-email-for-blind
make install # creates venv, installs deps, copies .env.example
# edit .env with your credentials
make run # http://localhost:5000See DEPLOY.md for mobile HTTPS setup, Docker, Railway, and Fly.io.
Breaking Changes from v1
- Google removed "Less Secure Apps" support in 2024 — the old SMTP auth no longer works. Use OAuth2 (Gmail) or an App Password (Yahoo/others).
pygletand temp MP3 files replaced by the browser's built-in speech engine.- Credentials must be in
.env— never in source code.