Lexiverse
Lexiverse - 영어 학습자를 위한 AI 기반 문맥 독해 엔진
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web học từ vựng TOEIC (600 Essential Words) cho người Việt: học theo bài, ôn lặp lại ngắt quãng, 8 dạng bài tập, đồng bộ tiến độ qua tài khoản Google.
Bản chạy: https://vocab-web-beta.vercel.app/ · Next.js 16 · React 19 · Firebase Auth + Firestore.
Học và ôn
8 dạng bài tập
| Dạng | Kiểu trả lời |
|---|---|
| Gõ từ theo ô chữ | gõ, có gợi ý chữ |
| Điền chỗ trống | chọn 1/4 |
| Chọn nghĩa / chọn từ | chọn 1/4 |
| Dạng từ (Part 5) | chọn 1/4 hoặc gõ |
| Ghép từ (gốc + phụ tố) | bấm mảnh ghép |
| Đồng nghĩa / gần nghĩa trong câu | chọn 1/4 |
| Nối từ theo chủ đề | nối 6 cặp |
| Nghe | chọn 1/4 hoặc gõ |
floor(số chữ cái × 0.3) chữ mà vẫn tính đúng; vượt mức thì tính là có hỗ trợ.Phân tích từ
agree · -ment.inter- + rupt → "phá vỡ ngay giữa chừng". Có trang /roots cho từng gốc, gồm cả từ mở rộng ngoài sách.Tài khoản
a-z 0-9 _, 3–20 ký tự).Cần Node.js 24 (tối thiểu 20.9).
npm ci
npm run dev # http://127.0.0.1:5174
Giữ nguyên host/port 127.0.0.1:5174: dữ liệu trình duyệt gắn với địa chỉ này.
| Lệnh | Việc |
|---|---|
npm run build | sinh catalog + kiểm tra nội dung + build |
npm run start | chạy bản build (cùng port 5174) |
npm test | unit test |
npm run typecheck · lint · format:check | kiểm tra code |
npm run e2e | test trình duyệt (Playwright) |
E2E bằng Edge có sẵn trên máy: đặt PW_CHANNEL=msedge. Đặt E2E_PRODUCTION=1 để test trên bản build.
Test rules Firestore cần Java 21:
FIREBASE_SYNC_EMULATOR_TEST=1 npx firebase-tools emulators:exec --only auth,firestore --project demo-vocab-sync \
"npx vitest run src/data/sync-emulator.test.ts src/data/usernames-emulator.test.ts"
| Thư mục | Nội dung |
|---|---|
src/app/ | route Next.js |
src/features/ | màn hình (Hôm nay, Bài học, Học, Tiến độ, Cài đặt, BXH…) |
src/domain/ | logic học, chấm điểm, sinh câu hỏi, đáp án nhiễu |
src/data/ | lưu trữ IndexedDB, validator, đồng bộ Firestore |
content/books/<bookId>/ | khai báo từng quyển sách |
content/roots/roots.json | dữ liệu gốc từ (mức 2) |
content/knowledge/ | bài đọc MDX |
data/ | dữ liệu nguồn và bản sinh từ pipeline Python |
scripts/ | builder catalog, gói bài tập, validator |
e2e/ | test Playwright |
Không sửa tay file sinh ra trong src/content/ và public/exercises/.
data/source, data/enrich, data/translations.npm run data — Python sinh data/generated/, builder sinh src/content/books/<bookId>/ và public/exercises/<bookId>/.Thêm một quyển sách
content/books/<bookId>/book.json (id trùng tên thư mục, title, shortTitle, builder, expectedEntries, expectedLessons).scripts/books/<bookId>.mjs trả về { payload: { lessons, topics, words }, warnings, part5 }, đăng ký trong scripts/build-content.mjs.<bookId>: (riêng toeic-600 giữ ID cũ). URL bài: /books/<bookId>/lessons/<n>.npm run data:catalog.Gốc từ: sửa content/roots/roots.json. Batch mới (file delta có newRoots, addedWords, newParticles…): npm run roots:merge -- <batch.json> để xem trước, thêm --write để ghi; mục đã có trong repo không bị ghi đè. Mọi phụ tố trong parts phải có trong bảng affixes; book.wordId phải tồn tại trong catalog — build sẽ báo lỗi nếu sai.
vocab-learn-v2, store snapshots, schemaVersion: 2. Không đổi tên/ID để giữ tiến độ cũ.vocab-web-next): users/{uid}/… (nhật ký đồng bộ, chỉ chủ tài khoản), profiles/{uid}, usernames/{name}, leaderboard/{uid}. Quy tắc ở firestore.rules.Web: Vercel, nhánh main, cấu hình sẵn trong vercel.json. Biến môi trường SITE_URL tuỳ chọn (domain thật cho sitemap).
Firebase: thêm domain Vercel vào Authentication → Authorized domains. Đổi firestore.rules thì đợi CI (job firebase-emulator) xanh rồi mới deploy:
npx firebase-tools deploy --only firestore:rules --project vocab-web-next
Nội dung 600 Essential Words có bản quyền; app dùng cho mục đích cá nhân. Cần xem lại quyền sử dụng trước khi phát hành công khai.