Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
Practice foreign language exercises with progress tracking and review features
AI summary · website content
EducationTypeScript · JavaScriptGitHub @ThinhNT291OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Web học và luyện ngoại ngữ có chấm điểm, nhận xét, gợi ý và phân tích tiến độ.
Ngữ cảnh và quyết định dự án: CLAUDE.md. Lộ trình: ROADMAP.md. Quy trình pull/gộp/Supabase/Vercel: docs/quy-trinh-lam-viec.md.
npm install
cp .env.example .env.local # điền khóa Supabase/Gemini (chưa cần cho bản demo bài tập)
npm run dev # http://localhost:4000
Kiểm tra trước khi đẩy code: npm run check:content, npm test (kiểm thử hàm thuần: lịch ôn, chuỗi ngày, tổng hợp tiến độ), npm run lint và npm run build.
Mỗi chuyên đề một tệp src/content/exercises/en/<id-chuyên-đề>.json, là mảng câu (xem src/content/exercises/en/subjunctive.json làm mẫu, có đủ choiceExplanations). Quy tắc soạn: docs/chuan-noi-dung.md. Mỗi câu cần: id duy nhất, usageId trùng một mục usages[].id của chuyên đề (để có link "Xem lại lý thuyết"), choices, correctIndex, explanation và nên có choiceExplanations (giải thích riêng từng đáp án). Chạy npm run check:content để bắt lỗi trước khi đẩy.
src/app/ trang: / trang chủ, /hoc danh sách chuyên đề, /hoc/[topic] lý thuyết, /hoc/[topic]/luyen-tap luyện tập (10 câu mỗi lượt, dễ → khó; ?tag=<mã mục> luyện lại một mục), /hoc/[topic]/nhuc-dau chế độ Nhức đầu (10 câu khó nhất), /tien-do tiến độ và các mục cần ôn lại, /on-tap ôn tập bằng thẻ lật 3Dsrc/content/grammar/<ngôn ngữ>/ lý thuyết từng chuyên đề (JSON) + index.json; src/content/exercises/<ngôn ngữ>/<chuyên đề>.json bài tậpscripts/validate-content.mjs kiểm tra nội dung (npm run check:content)src/components/exercise/ bài tập: ExerciseRunner, ChoiceButton, ProgressBarsrc/lib/content/ mô hình nội dung (types.ts) và nơi nạp nội dung (grammar.ts)src/components/srs/ thẻ lật 3D (Flashcard) và phiên ôn tập; src/lib/srs/ lịch ôn kiểu SM-2 rút gọn và dựng thẻ từ câu saitests/ kiểm thử bằng bộ chạy sẵn của Node (npm test)src/lib/analytics/ tổng hợp tiến độ, chuỗi ngày học và bản đồ nhiệt từ lịch sử trả lời (hàm thuần); src/lib/content/rounds.ts cách bốc câu cho mỗi lượtsrc/lib/db/ lớp truy cập dữ liệu (đăng nhập ẩn danh, hồ sơ, ghi câu trả lời); supabase/migrations/ schema SQLsrc/lib/supabase/ client Supabase (chỉ lớp truy cập dữ liệu được gọi), src/app/api/health kiểm tra kết nốisrc/lib/settings.ts giao diện (3 skin) và âm thanh, lưu trong trình duyệtlegacy/ bản JS thuần cũ, giữ để tham khảo (đặc biệt grammar_theory_bank.js), không build