Everyone-Can-Use-English Features: A Complete Guide to the AI-Powered English Learning Platform
Everyone-Can-Use-English is a full-stack web application that combines AI chat, speech synthesis, pronunciation assessment, and multimedia lessons to create an interactive English practice environment.
This open-source project by ZuodaoTech provides learners with conversation practice through large language models, automated speech feedback, and comprehensive progress tracking. Below is a detailed breakdown of its core capabilities based on the source code architecture.
AI-Powered Conversation & Chat
The platform enables context-aware dialogue practice with LLM-generated responses that simulate real conversations.
The chat system is backed by a dedicated database schema defined in enjoy/src/main/db/migrations/1722039161323-create-chats.js:
// Start a new chat session (backend)
import { db } from "./src/main/db";
await db.chat.create({ userId, title: "Practice Conversation" });
Conversations are persisted and can be resumed across sessions, allowing learners to build ongoing practice routines.
Speech Synthesis & Audio Playback
Everyone-Can-Use-English generates spoken audio for prompts and AI responses, supporting auditory learning styles.
Audio assets are managed through enjoy/src/main/db/migrations/1703902823343-create-audio.js. The front-end build pipeline in enjoy/vite.main.config.ts handles audio file serving and optimization.
Pronunciation Assessment
A standout feature is the automated pronunciation feedback system. Learners record their voice and receive accuracy scoring without human intervention.
The assessment infrastructure is established in enjoy/src/main/db/migrations/1703902870618-create-pronunciation-assessment.js:
// Record a user's voice and trigger pronunciation assessment
import { db } from "./src/main/db";
const recording = await db.recording.create({ userId, audioBlob });
await db.pronunciationAssessment.create({ recordingId: recording.id });
This creates a closed loop: speak, assess, and improve.
Voice Recording & Transcription
The platform supports spoken answer capture with automatic transcription, bridging speech and text for comprehensive skill development.
Two migrations handle this pipeline:
enjoy/src/main/db/migrations/1703902843307-create-recording.js— stores raw audioenjoy/src/main/db/migrations/1704030985573-create-transcription.js— persists transcribed text
Video-Based Lessons
Multimedia content delivery includes embedded video materials for listening practice, managed through enjoy/src/main/db/migrations/1703902826529-create-video.js. Videos are integrated alongside interactive elements rather than treated as static resources.
User Settings & Progress Tracking
Personalization is enabled through enjoy/src/main/db/migrations/1725411577564-create-user-setting.js, which stores:
- Language preferences
- Learning history
- Custom configurations
This supports long-term progress monitoring across multiple learning sessions.
Multi-Modal Front-End Interface
The user interface unifies text chat, audio playback, and video playback through a Tailwind CSS + React + Vite stack:
enjoy/tailwind.config.js— utility-first styling configurationenjoy/vite.base.config.tsandenjoy/vite.renderer.config.ts— build tooling for main and renderer processes
// Vite config enabling Tailwind and React for the front-end
import { defineConfig } from "vite";
export default defineConfig({
plugins: [require("@tailwindcss/vite")()],
});
Bundled Learning Resources
The repository includes exportable markdown-based lessons such as the English Voice Tutorial (new-edition-drafts/英文语音简明教程.md). These materials can be served directly or converted for other formats.
Serverless Deployment Architecture
The back-end runs on Cloudflare Workers for low-latency AI interactions:
entry/index.js— request routing and API handlingentry/wrangler.toml— deployment configuration
This serverless design reduces infrastructure costs and improves global accessibility.
Key Implementation Files
| File | Purpose |
|---|---|
enjoy/src/main/db/migrations/1722039161323-create-chats.js |
Chat session schema |
enjoy/src/main/db/migrations/1703902870618-create-pronunciation-assessment.js |
Pronunciation scoring storage |
enjoy/src/main/db/migrations/1703902843307-create-recording.js |
Voice recording persistence |
enjoy/src/main/db/migrations/1704030985573-create-transcription.js |
Speech-to-text results |
enjoy/src/main/db/migrations/1703902826529-create-video.js |
Video content management |
enjoy/src/main/db/migrations/1725411577564-create-user-setting.js |
User configuration |
entry/index.js |
Cloudflare Workers entry point |
enjoy/vite.main.config.ts |
Front-end build configuration |
new-edition-drafts/英文语音简明教程.md |
Sample learning material |
Summary
- AI conversation practice via LLM-backed chat system with persistent sessions
- Speech capabilities including synthesis, recording, transcription, and pronunciation assessment
- Multimedia lessons combining video, audio, and interactive text
- Progress tracking through user settings and historical data storage
- Modern web stack using React, Tailwind CSS, Vite, and Electron
- Serverless deployment on Cloudflare Workers for scalable, low-latency delivery
Frequently Asked Questions
How does the pronunciation assessment feature work?
The pronunciation assessment feature stores user recordings in a dedicated table via create-recording.js, then creates linked assessment records through create-pronunciation-assessment.js. The actual scoring logic likely integrates with external speech recognition APIs, with results persisted for progress tracking.
Can I run Everyone-Can-Use-English without Cloudflare Workers?
While the primary deployment target is Cloudflare Workers (entry/index.js and entry/wrangler.toml), the database migrations and core logic in enjoy/src/main/db/ are framework-agnostic. Adapting to other serverless platforms or traditional servers would require replacing the worker-specific routing layer.
What database does Everyone-Can-Use-English use?
The migration files indicate a SQL-based relational database accessed through an ORM layer. The specific database engine isn't enforced by the migrations themselves—SQLite, PostgreSQL, or MySQL could all satisfy the schema requirements depending on deployment configuration.
Is the learning content customizable?
Yes. The new-edition-drafts/ directory demonstrates that lessons are stored as markdown files, making them editable without code changes. The video and audio systems also support dynamic content injection through their respective database tables.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →