TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
A calm, personal Japanese vocabulary study app with flashcards.
Translation pending
EducationGitHub @The-Pavan-PatilOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Japanese flashcard website
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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.