尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Japanese flashcard website
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A personal Next.js app for studying Japanese vocabulary. Each word has 5 attributes: Kanji, Romaji, English meaning, Tips (Marathi), Category (noun/verb/adjective/…).
docs/spaced-repetition.md.Next.js (App Router, TS) · Tailwind CSS v4 · Supabase (Postgres) · docx, pdf-lib (export) ·
papaparse, xlsx, mammoth, pdf-parse (import).
supabase/schema.sql,
and run it to create the vocab table.localhost), and add Redirect URLs for every origin you use, e.g.
https://your-domain.com/**, http://localhost:3000/** (and your ngrok HTTPS origin if you
tunnel the dev server). Password-reset links use the deployed site URL; if the production origin
is missing here, Supabase falls back to Site URL (often localhost).cp .env.local.example .env.local
Fill in:
NEXT_PUBLIC_SUPABASE_URL=https://<your-project>.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=<your-publishable-key>
NEXT_PUBLIC_SITE_URL=https://your-domain.com
NEXT_PUBLIC_SITE_URL is optional locally (the app derives the origin from the request). Set it in
production so password-reset emails always link to your deployed site.
Per-user data isolation is enforced by Row Level Security, so the publishable key is all the app
needs — no service-role key is stored in the app.
npm install
npm run dev
Open http://localhost:3000 → you'll be redirected to /login. Create your owner account.
Then enable auth scoping + migrate your existing words: open SQL Editor, set the owner email at
the top of supabase/0002_auth_rls.sql, and run it. (It adds
user_id, backfills your existing rows to your account, and turns on RLS + per-user policies.)
In SQL Editor, run the remaining migrations in numeric order:
0003_srs.sql through 0010_kanji_prompt_hints.sql. They add the independent word/Kanji schedules,
per-character Smart Kanji cards, curated selections, lossless reconciliation, atomic review
commits and history, idempotent review retries, and safe All Kanjis reading hints. Existing words
enter the flashcard rotation as new cards. How the scheduler works:
docs/spaced-repetition.md.
The first row may be a header. Recognized column names (case-insensitive, any order):
kanji/japanese/word, romaji/reading, english/meaning, tips/marathi/hint, category/type.
If no header is recognized, columns are read positionally in the order above.
CSV and Excel parse most reliably; PDF table parsing is best-effort — always review the preview.
PDF export embeds public/fonts/NotoSansJP-Regular.ttf (kanji) and
public/fonts/NotoSansDevanagari-Regular.ttf (Marathi). Default PDF fonts cannot render these scripts.
@supabase/ssr (cookie sessions). Session refresh and
route gating live in proxy.ts (Next.js 16 renamed middleware → proxy).lib/supabase/server.ts); vocab.user_id + RLS policies isolate data.xlsx (SheetJS) from the npm registry has known advisories; acceptable for personal/local use.