Boardium is a centralised hub for classic board games (e.g. Chess, Checkers, Ludo), supporting:
- 🌐 Online multiplayer
- 🤖 Bot opponents with multiple difficulty levels
- 🏗️ A shared backend architecture to avoid duplicated game logic
This repository is under active development and follows a structured team workflow.
Boardium/
├── backend/ # Node.js + Express API
│ ├── src/
│ │ └── index.js
│ └── package.json
│
├── frontend/ # React (Vite) frontend
│ ├── src/
│ │ └── App.jsx
│ └── package.json
│
├── docs/ # Diagrams, proposal material, notes
├── .gitignore
└── README.md
- React frontend scaffolded with Vite
- Express backend server running on port
3001 - CORS configured
- Frontend successfully connects to backend via
/healthendpoint - Clean Git workflow using
main+devbranches
- Authentication
- Game logic (Chess, Checkers, Ludo)
- Database schema (SQLite)
- Matchmaking or polling
git clone git@github.com:<ORG-OR-USERNAME>/Boardium.git
cd BoardiumMake sure you have added your SSH key to GitHub before cloning.
git checkout devAll active development happens on
dev, notmain.
Backend:
cd backend
npm installFrontend:
cd ../frontend
npm installTerminal 1 – Backend:
cd backend
npm run devExpected output:
Server running on port 3001
Terminal 2 – Frontend:
cd frontend
npm run devOpen the URL shown (usually http://localhost:5173). You should see:
Boardium
Backend status: ok
⚠️ Do NOT commit directly tomainordev.
| Branch | Purpose |
|---|---|
main |
Stable, release-ready code only |
dev |
Integration branch |
feature/* |
All new work |
git checkout dev
git pull origin dev
git checkout -b feature/<short-description>Branch name examples:
feature/chess-enginefeature/matchmakingfeature/sqlite-schema
git add .
git commit -m "feat: short meaningful message"
git push origin feature/<short-description>Then open a Pull Request into dev.
node_modules/is ignored via.gitignore- Each developer runs
npm installlocally - No secrets or database files should ever be committed
| Layer | Technology |
|---|---|
| Frontend | React + Vite |
| Backend | Node.js + Express |
| Database (planned) | SQLite |
| Version Control | Git + GitHub |
| Dev Workflow | Feature branches + Pull Requests |
- Define SQLite schema (users, matches, moves)
- Add core API routes:
/create-match,/move,/state - Implement shared game engine interface
- Add polling for online matches
- Implement bots with adjustable difficulty
If something doesn't run:
- Check you're on the
devbranch - Run
npm installin bothbackend/andfrontend/ - Make sure both servers are running simultaneously
If still stuck, ask in the group chat before force-pushing or rebasing.