Lexiverse
Lexiverse - 영어 학습자를 위한 AI 기반 문맥 독해 엔진
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Upload what you are actually studying, and it asks you the questions.
Built because tools like Thea, Quizlet and Knowt all put the useful parts — unlimited questions, practice tests, no waiting — behind a paywall or a daily cap. This runs on your own free API key, so there is no cap and no bill.
Study kits. Paste notes or drop in a PDF. It reads the material once and builds flashcards, a revision guide and a pool of questions from it. PDFs are parsed in your browser, so the file itself never leaves your machine — only the extracted text is sent on.
Smart Study. Open-ended questions you answer by typing. Each answer is marked on understanding rather than wording, told what you left out, and given the correct answer. Difficulty climbs when you are scoring above 80% and drops below 50%, and the question picker weights towards concepts you keep getting wrong.
Flashcards. Scheduled with SM-2, the spaced-repetition algorithm behind Anki. Cards you know stretch further apart; cards you miss come back in ten minutes.
Practice tests. Multiple choice, 5 to 25 questions, timed and marked at the end like a real paper. The wrong options are written to be plausible rather than obvious.
Revision guide. The material condensed per concept, with a section contrasting the ideas that are easy to mix up.
Everything comes from your own uploads. The prompts tell the model to say when the material does not cover something instead of filling the gap from elsewhere.
Create a project at supabase.com (free tier is enough),
then run the two files in supabase/migrations/ in the SQL editor, oldest
first. They create the tables, the row-level-security policies and two views.
From Project Settings → Data API, copy the project URL and the publishable key.
Get a free key at aistudio.google.com/apikey.
No credit card. The free tier has a daily request limit that one person is
unlikely to reach; if you do, gemini-3.5-flash-lite has a larger quota.
cp .env.example .env.local # then fill it in
npm install
npm run dev
| Variable | Needed | What it is |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | yes | Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | yes | Publishable key, safe in the browser |
GEMINI_API_KEY | yes | Server-side only. Never prefix with NEXT_PUBLIC_ |
GEMINI_MODEL | no | Defaults to gemini-3.8-flash |
AI_PROVIDER | no | gemini (default) or anthropic |
ANTHROPIC_API_KEY | no | Only if AI_PROVIDER=anthropic |
Visit /api/health to check what the server can see. It reports whether each
variable is set, never its value, and is reachable without signing in so it
still works when the app is misconfigured.
By default Supabase emails a confirmation link before the first sign-in. For a personal instance it is easier to turn that off: Authentication → Sign In / Providers → Email → Confirm email. Sign-up then logs you straight in. The app handles both.
Import the repo on Vercel, add the same environment variables, deploy. The free Hobby plan covers it; AI routes are capped at the 60-second function limit.
Nothing outside lib/ai/provider.ts knows which model is in use. Everything
calls getProvider(), which returns something with generateJSON and
generateText. Gemini and Claude are implemented; adding Groq or a local model
means writing one more class and a line in the factory.
Claude is left off by default because the Claude API is billed per token and is separate from a Claude.ai subscription — a Pro plan does not include API access.
proxy.ts,
which is what middleware is called in 16.user_id and an RLS
policy, so a user can only ever read or write their own rows — enforced by
the database, not by application code.app/fonts/) rather than Google Fonts, so no
third-party request on load and no build-time dependency on a CDN.app/
api/ route handlers: kit building, questions, marking, tests
kits/[id]/ study · cards · test · guide
lib/
ai/provider.ts the only file that knows about a model vendor
ai/study.ts prompts and response schemas
srs.ts SM-2 scheduling
supabase/ browser, server and proxy clients
supabase/migrations/
npm run typecheck
npm run lint
npm run build
lib/srs.ts is checked against the SM-2 specification (interval progression
1 → 6 → ×ease, the 1.3 ease floor, lapse handling) and the Gemini provider
against a stand-in API covering the response shape and every HTTP failure.
MIT.