Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗심심할 때 스마트폰 브라우저로 열어서 짧게 몰입하는 개발 기본기 학습 웹앱.
software-essentials)Git · HTTP/웹 · DB/SQL · 자료구조/알고리즘 · 배포/인프라 · 보안 · 테스트 · 설계/아키텍처 — 8개 주제, 각 주제 난이도 1~5 문제.
src/
core/ 프레임워크 독립 도메인 로직 (순수 함수, 테스트 대상)
content/ 콘텐츠 팩 스키마, 카탈로그, 문제 유형별 채점/배치
engine/ 난이도(skill), 속도 판정(pace), 복습(memory), 문제 선택(selector)
learner/ 이벤트 정의와 이벤트 → 학습자 상태 계산(fold)
session/ 세션 상태 머신 (question → feedback → summary → relax → memo)
sync/ 클라이언트·서버 공유 동기화 프로토콜(zod)
content/packs/ 실제 문제들. 새 팩은 src/content/index.ts 에 등록
storage/ 기기 로컬 이벤트 저장소, outbox, 서버 동기화, UI용 스토어
server/ Neon(Drizzle) 스키마와 동기화 저장소
app/ Next.js 라우트 (화면은 얇게, 로직은 ui/·core/에)
ui/ 화면 컴포넌트와 훅
학습 기록은 이벤트 로그(풀이·세션·메모)로 저장하고, 실력 레벨은 로그를 접어서 계산한다. 그래서 어느 기기든 같은 로그면 같은 상태가 나오고, 오프라인에서 쌓인 기록도 나중에 그대로 합쳐진다.
| 하고 싶은 것 | 고칠 곳 |
|---|---|
| 새 주제/팩 추가 | src/content/packs/… 작성 후 src/content/index.ts에 등록 |
| 새 문제 유형(예: 순서 맞추기) | core/content/types.ts 타입, core/content/kinds.ts 채점·배치, ui/session/question-views.tsx 렌더러 |
| 목표 정답률·조절 폭 | core/engine/config.ts |
| 로컬 저장을 IndexedDB로 | storage/kv.ts의 KeyValueStore 구현 추가 후 ui/learner/runtime.ts에서 교체 |
| 서버 저장소 교체 | server/sync/repository.ts의 SyncRepository 구현 |
npm install
npm run dev # http://localhost:3000
npm test # 엔진·세션·동기화·콘텐츠 무결성 테스트
npm run lint
DB 없이도 그대로 동작한다(기기 로컬 저장 모드). DB를 붙이려면 .env에 DATABASE_URL을 넣고 npm run db:migrate.
스키마를 바꾸면 npm run db:generate로 drizzle/에 마이그레이션을 만들어 커밋한다. 배포 빌드(npm run build)가 시작 전에 마이그레이션을 적용한다.
DATABASE_URL이 자동 등록됨