Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
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 ↗심심할 때 스마트폰 브라우저로 열어서 짧게 몰입하는 개발 기본기 학습 웹앱.
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이 자동 등록됨