An NLP-powered chess platform that provides immersive and authentic practice experiences for players of all skill levels.
You need Node.js (for the frontend) and uv (for the Python backend). If you already have them, skip the relevant section.
- Go to https://nodejs.org and download the LTS installer for your OS.
- Run the installer and follow the prompts (default options are fine).
- Verify the installation by opening a terminal and running:
node --version npm --version
Windows — run this in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | shAfter installation, restart your terminal, then verify:
uv --version
uv manages Python for you — you do not need to install Python separately.
git clone <repo-url>
cd MindfulMovescd backendCreate a .env file inside the backend/ folder with the following contents:
DATABASE_URL=sqlite:///./local.db
FRONTEND_URL=http://localhost:5173
JWT_SECRET_KEY=your-secret-key-hereReplace
your-secret-key-herewith any long random string.
Install dependencies:
uv syncImportant:
uv.lockis the source of truth for exact dependency versions and must always be kept up to date. If you ever add, remove, or change a dependency inpyproject.toml(the backend's dependency config file), runuv lockbeforeuv syncto update the lockfile first. Committing code without an updateduv.lockwill cause other developers to install different package versions than you.
Update database with difficulty column:
uv run python migrations/add_difficulty.pyOpen a new terminal and run:
cd frontendCreate a .env file inside the frontend/ folder:
VITE_API_URL=http://localhost:8000Make sure the select encoding is UTF-8 with BOM: if not (in VSCode) look at the bottom right for select encoding > save with encoding > UTF-8 with BOM.
Install dependencies:
npm installYou need two terminals open at the same time — one for the backend and one for the frontend.
Terminal 1 — Backend (from the backend/ directory):
uv run python server.pyThe API will be available at http://localhost:8000. You can explore and test all endpoints at http://localhost:8000/docs.
Terminal 2 — Frontend (from the frontend/ directory):
npm run devOpen http://localhost:5173 in your browser to use the app.