TutorLoom
기업·대학·교육기관을 위한 학습 플랫폼, 무료 오픈소스이며 엔터프라이즈 버전 제공
Memory Chess는 무료 체스 기억 훈련으로, 포지션을 보고 기억해 재구성해 즉시 점수를 매깁니다
Memory Chess is a free chess memory trainer. See a chess position for a few seconds, rebuild it from memory, and get an instant score. No sign-up.
교육TypeScript · JavaScriptGitHub @bingcheng45온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.