Initial commit

Create the Board Score PWA with offline support, Kurzgesagt-style themes, multiple game configs, dynamic players, avatars via DiceBear, and complete statistics.
This commit is contained in:
Zed
2026-07-06 16:12:25 +02:00
commit bf67c58171
62 changed files with 54527 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
import Dexie, { Table } from "dexie";
import { GameSession, AppSettings, SavedPlayer } from "../types";
export class BoardScoreDatabase extends Dexie {
sessions!: Table<GameSession, string>;
settings!: Table<AppSettings, number>;
players!: Table<SavedPlayer, string>;
constructor() {
super("BoardScoreDatabase");
this.version(1).stores({
sessions: "id, gameId, dateStart, status",
settings: "id",
});
// Version 2: Added players table
this.version(2).stores({
sessions: "id, gameId, dateStart, status",
settings: "id",
players: "id, name, createdAt",
});
}
}
export const db = new BoardScoreDatabase();
// Initialize default settings if empty
db.on("populate", async () => {
await db.settings.add({
id: 1,
theme: "system",
language: "fr",
});
});