Project Overview
SoEasyEdu Speak is an AI-driven English speaking practice platform that lets users practice their English speaking skills through real-time AI conversation. The system integrates OpenAI GPT for intelligent dialogue and content evaluation, Azure Speech Services for speech recognition and pronunciation analysis, and provides detailed learning score reports.
The backend uses a fully async FastAPI architecture with a PostgreSQL database. The frontend is built with React 19 + Vite, deployed in containerized multi-environment configurations via Docker Compose.
Core Features
AI Real-Time Conversation Practice
A conversation engine powered by OpenAI GPT, supporting two modes — “scenario-based” and “assessment test” — with difficulty dynamically adjusted to the learner’s level.Speech Recognition and Pronunciation Assessment
Integrates Azure Speech Services for real-time speech-to-text, with AI analyzing pronunciation accuracy and providing detailed feedback rated on a 50-60-80-100 scale.Multi-Level Learning System
Supports multiple learning levels, each containing a structured conversation flow (ChatFlow) driven by JSON configuration to manage learning progress and Q&A content.Learning Analytics Reports
Fully records scores, pronunciation feedback, and improvement trends for each session, providing learners and administrators with data-driven learning outcome analysis.Admin Dashboard
Administrators can manage learning records, create and edit learning levels, view assessment group data, and monitor system status through the admin panel.Technical Architecture
Frontend
Built onReact 19 with Vite, using React Router v7 for routing, Tailwind CSS for a custom-themed interface (purple primary + orange accent), and Axios for API communication.Backend
Uses the fully asyncFastAPI framework with SQLAlchemy 2.0 and the asyncpg driver for async database operations, Alembic for migration management, and Poetry for Python dependency management.AI and Speech Services
Conversation engine and content evaluation useOpenAI API (GPT + TTS). Speech recognition integrates Azure Cognitive Services Speech SDK. Audio processing uses SoundFile and PyDub for format conversion.Authentication and Security
JWT token authentication with bcrypt password hashing, supporting a dual-role system for administrators and regular users.Deployment
Docker Compose multi-environment deployment (Local / Dev / Prod) with Nginx reverse proxy, PostgreSQL database container, and PgWeb management interface.Database Design
Uses PostgreSQL with SQLAlchemy 2.0 (async), managing learning record lifecycles through a state-machine pattern — from creation, conversation, and completion through to scoring — fully tracking every learning session.
| Table | Description | Key Fields |
|---|---|---|
| users | Learner accounts (UUID-identified) | id, name, email |
| managers | Administrator accounts (password stored as hash) | id, username, password_hash |
API Design
RESTful API designed with FastAPI, fully async to support real-time voice conversation scenarios:
Conversation and Voice /api/records
Learning Levels /api/chat-levels
Evaluation System /api/evaluate
User Management /api/users / /api/managers
Utility Services /api/tools
Deployment Architecture
Multi-Environment Docker Compose Configuration
Supports three deployment environments — Local (direct connection), Development (Nginx + Hot Reload), and Production (Nginx reverse proxy + optimized build) — all including a PostgreSQL database container and PgWeb database management interface.Service Components
Frontend (React SPA), Backend (FastAPI + Uvicorn), PostgreSQL 15, Nginx reverse proxy, PgWeb database management, shared audio file volume.