point3-learning-tool

Point3 Learning Tool ✨

An accessible English‑learning desktop application designed for visually impaired learners. The app bundles an Electron shell, a React front end, and a Flask backend to deliver guided listening, self‑recording, and pronunciation comparison in a single package.

Features 🎯

Tech Stack 🧰

Repository Layout 📂

.
├── app
│   ├── backend/          # Flask API, data stores, sample generation script
│   ├── client/           # React source code and assets
│   ├── main.js           # Electron main process (lanches Flask + React)
│   └── package.json      # Electron + orchestration scripts
├── scripts/              # Cross-platform start scripts
├── README.md             # English README
└── README-zh.md          # 中文说明

Key data directories (created on first run or via create_sample_data.py):

Getting Started 🚀

Prerequisites 📋

Install dependencies 📦

# Python dependencies
cd app/backend
pip install -r requirements.txt

# JavaScript dependencies (client + Electron)
cd ../../app/client
npm install
cd ..
npm install

Launch in development ▶️

# From repository root (Bash)
./scripts/start.sh

# Or on Windows (PowerShell)
pwsh scripts/start.ps1

The script frees ports 3000/5000 if needed, starts the Flask API, boots the React dev server, and opens the Electron window automatically. React stays inside the Electron shell—no browser tab will appear.

Sample data 📚

If you need fresh demo content, regenerate it:

cd app/backend
python create_sample_data.py

This populates databaseOrigin/ with transcripts and audioOrigin/ with synthesised placeholder audio.

Usage Notes 💡

Building for distribution 📦

cd app
npm run build        # Builds the React bundle into client/build

For packaging the Electron app you can integrate electron-packager or a similar tool (not yet scripted in this repo).

Troubleshooting 🧪

License 📝

Apache License 2.0 – see LICENSE for details.