VedAnvaya
Read the four Vedic Samhitas as one connected corpus: 20,210 canonical mantras with translation, recitation, notation, entities and cross-Veda textual reuse.
Online příprava na základku, střední, přijímačky i maturitu
Translation pending
EducationTypeScript · JavaScriptGitHub @lukastmasek-createLatest connection check failedOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗Základ webu pro online kurzy s uživatelskými účty, postaveno na Next.js.
prisma/schema.prisma # datový model: User, Course, Lesson, Enrollment, ...
src/lib/prisma.ts # Prisma klient (singleton)
src/lib/auth.ts # NextAuth konfigurace
src/app/
page.tsx # úvodní stránka
kurzy/page.tsx # výpis kurzů
prihlaseni/page.tsx # přihlašovací formulář
registrace/page.tsx # registrační formulář
api/auth/[...nextauth]/ # NextAuth route handler
api/registrace/ # endpoint pro vytvoření účtu
.env.example do .env a doplň DATABASE_URL (PostgreSQL) a AUTH_SECRET
(vygeneruješ pomocí openssl rand -base64 32).npm install
npm run db:migrate
npm run dev
Žáci si školu mohou přidat sami, ale je lepší naplnit tabulku School skutečnými školami
z Rejstříku škol MŠMT (open data) nebo z vlastního CSV (název;obec):
node prisma/import-schools.cjs vrejcelk.xml
node prisma/import-schools.cjs skoly.csv
U XML lze názvy tagů změnit parametry --record-tag, --name-tag a --city-tag. Duplicity se přeskočí.
Aplikace běží na Cloudflare Workers přes OpenNext (@opennextjs/cloudflare), databáze PostgreSQL zůstává externí a připojuje se přes Hyperdrive.
id):
npx wrangler hyperdrive create ucimesehrou --connection-string="postgresql://USER:PASS@HOST:5432/DB"
Vlož id do wrangler.jsonc (místo REPLACE_WITH_HYPERDRIVE_ID).npx wrangler secret put AUTH_SECRET
ucimesehrou.org musí být přidána do účtu Cloudflare. Vlastní doména se nastavuje v routes ve wrangler.jsonc.npm run deploy # build přes OpenNext + wrangler deploy
npm run preview # lokální náhled v prostředí Workers
DATABASE_URL ukazující na produkční Postgres):
npx prisma migrate deploy
Lokálně se Prisma připojuje přes DATABASE_URL z .env. Na Workers se použije binding HYPERDRIVE.
Enrollment) a sledování postupu (LessonProgress).src/lib/auth.ts.Stránka /hrat-spolecne: kdokoliv založí hru (kvíz, závod nebo zlatá horečka), ostatní se připojí kódem. Stav se čte pollingem (~1 s), takže stačí Next.js a Postgres.
prisma/sql/live-games.sql v databázi (nové tabulky QuestionSet, LiveRoom, LivePlayer, LiveAnswer).prisma/sql/economy-feed.sql (nová tabulka EconomyEvent).src/lib/live/logic.ts, testy: npm test.src/lib/live/service.ts a src/app/api/live/, obrazovky: src/components/live/, texty: src/i18n/live.ts.Obsah kurzů je v prisma/content/*.cjs, SQL se generuje příkazem node prisma/build-courses-sql.cjs.
Předmět Fyzika je nová hodnota enumu Subject, proto se v databázi spouští ve dvou krocích:
prisma/sql/subject-fyzika.sql (přidá hodnotu FYZIKA),prisma/sql/courses-fyzika-6-9.sql, courses-cestina-mezery.sql, courses-matematika-mezery.sql, courses-fyzika-stredni.sql a courses-matematika-stredni.sql (kurzy a otázky; opakované spuštění nic nezdvojí).Farma, Město a Základna mají panel Výzvy (src/components/idle/ChallengePanel.tsx, API src/app/api/stale-hry/vyzvy/route.ts,
logika src/lib/idle/challenge.ts, testy v challenge.test.ts). Stav je v IdleState pod klíčem vyzvy, nové tabulky nejsou potřeba.
Stránka /kontakt (odkaz v menu Nastavení, v patičce a u výběru školy): formulář s kategoriemi Podpora (chyba v učivu, chyba ve stránce, chyba s účtem), Partnerství (partnerská škola, influenceři, učebnice pro materiály) a Přidání školy. Odkaz /kontakt?tema=add-school (nebo jiné id tématu či kategorie) formulář rovnou předvyplní.
prisma/sql/contact.sql v databázi (nová tabulka ContactMessage).ContactMessage (stav new), čtou se zatím přímo v databázi (např. npm run db:studio).src/lib/contact.ts (testy v npm test), API: src/app/api/kontakt/, texty: src/i18n/contact.ts.Záložka Craftování v profilu (/profil#craftovani): Bonusy, Avatary, Doplňky a Materiály.
CRAFT_ASSETS.md).src/lib/craft.ts (testy v npm test), server: src/lib/craft-server.ts, src/app/api/craft/, obrazovka: src/components/CraftPanel.tsx, texty: src/i18n/craft.ts. Stav je v IdleState (hra craft), takže není potřeba měnit databázi.