TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Memory Chess: a free chess position memory trainer. Study a position, the board goes blank, rebuild it from memory. 24 languages.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Memory Chess is a free chess memory game at thememorychess.com. You see a chess position for a few seconds, then rebuild it from memory and get a score. This repository is the source of the site.
Around the round:
Memory Chess is a Next.js 15 App Router app written in TypeScript. The Node version is not pinned in the repo. The versions below are from package.json.
Stack
messages/Setup
git clone https://github.com/bingcheng45/memory-chess.git
cd memory-chess
npm install
npm run dev
Open http://localhost:3000. The dev server uses Turbopack.
Environment
Put these in .env.local. The names come from src/.
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY: the leaderboard. Set SUPABASE_READ_ONLY=true to stop writes that go through the shared Supabase client in src/lib/supabase.js. It does not cover the Google Sheets writes below. The opt-in lab backup (LAB_BACKUP=on) builds its own service-role client and honours it too: a put or delete answers 503 and a get still works.GOOGLE_SHEET_ID, GOOGLE_SERVICE_ACCOUNT_KEY: where feedback and contact messages are appended. Feedback goes to a worksheet tab named Game Feedback with headers Submitted At, Rating, Feedback, Accuracy, Correct Pieces, Piece Count, Difficulty, Memorization Time, Solution Time, App Version in columns A to J.NEXT_PUBLIC_DATABUDDY_CLIENT_ID: analytics.Scripts
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run build | Validates messages and articles, builds the app, then checks the prerendered guides |
npm start | Serves a production build |
npm run lint | next lint |
npm run validate | Checks the message files and the article translations |
npm run validate:messages | Checks every locale file for missing keys and broken placeholders |
Other npm run scripts (lab:*, measure:*, migrate:rehearse, backup:verify) are measurement and maintenance tools. See package.json and scripts/.
Tests and type checks
npx jest
npx tsc --noEmit
There is no test script. Jest runs every file matching **/__tests__/**/*.test.[jt]s?(x), which covers src/, scripts/ and schema/.
Adding or changing text. Interface strings (next-intl) go into messages/en.json and the other 23 locale files. Article and trust-page translations live elsewhere: articles in src/lib/articles/translations/, and About, Privacy and Terms in src/lib/pages/translations/. Those are written and checked with node scripts/articles-i18n.mjs (add --pages for the trust pages). Run npm run validate before you open a pull request. It checks both the message files and these translations.
Ads. No ad units are active. The AdSense script is off because ADSENSE_SCRIPT_ENABLED in src/lib/adsense.ts is set to false, and the placement plan is in adsense-layout-plan.md.
Issues and pull requests are welcome. Run npm run lint, npx tsc --noEmit and npx jest first.
MIT. Copyright 2025-2026 bing cheng.