Drop problems from server + draft DB cleaning functions
[vchess.git] / _tmp / TODO
1 --> correspondance: stocker sur serveur lastMove + uid + color + movesCount + gameId + variant + timeleft
2 fin de partie corr: supprimer partie du serveur au bout de 7 jours (arbitraire)
3 // TODO: au moins l'échange des coups en P2P ? et game chat ?
4
5 // TODO: surligner "hall" (menu) si nouveau défi perso (reçu) et pas affichage courant
6 // de même surligner "my games" si c'est à nous de jouer dans une partie (corr)
7 // ==> myGames componentn + Game component must listen for "new move" events
8
9 Hall + problems : similar pages, with "New game[problem]" button
10 with a list of variants.
11 --> but display all challenges (and all problems)
12 Possible filter: write a few variant names, to keep only these.
13 --> In settings !
14
15 Use better-sqlite3 instead of node-sqlite3:
16 https://www.npmjs.com/package/better-sqlite3
17
18 Canvas for hexagonal board Vue reactivity :
19 https://stackoverflow.com/questions/40177493/drawing-onto-a-canvas-with-vue-js
20 custom directives ?
21
22 Desktop notifications:
23 https://developer.mozilla.org/fr/docs/Web/API/notification
24
25 Think about this:
26 https://alligator.io/vuejs/component-communication/
27 https://alligator.io/vuejs/global-event-bus/
28
29 CRON task remove unlogged users, finished corr games after 7 days, individual challenges older than 7 days
30
31 tell opponent that I got the move, for him to start timer (and lose...)
32 --> no, not needed and impossible if everybody is offline
33 ==> just store this time locally (cheating possible but...)
34 board2, board3, board4
35 VariantRules2, 3 et 4 aussi
36 fetch challenges and corr games from server at startup (room)
37 but forbid anonymous to start corr games or accept challenges
38
39 Dans variant page, "mes parties" peut toujours contenir corr + importées (deux onglets)
40 En fin de partie (observée ou non), bouton "import game" en + de "download game" ==> directement dans indexedDB
41 --> sursis de 7 jours pour les parties par correspondance, qui sont encore chargées depuis le serveur
42
43 mat en 2 échiqueté : brnkr3/pppp1p1p/4ps2/8/2P2P2/P1qP4/2c1s1PP/R1K5
44 (Bb3+ Kb1 Ba2#)
45
46 // TODO: decodeURIComponent() for GET/DELETE parameters
47
48 2) Integrate computer play into rules tab
49 3) Allow correspondance play (no need for P2P: online moves through the server (which also store them))
50 4) Write my-games tab (included current/finished/imported)
51 Use Dexie.js, or anything to store games locally
52 5) Write room tab
53 Use this: https://github.com/feross/simple-peer for online games+challenges+chat
54 6) Test... and publish
55
56 Finish rules translation in Spanish + improve existing ones
57 Design: final touch (gain extra space on top, using space on the right)
58 Crazyhouse: center reserves, grey if zero available, numbers superimposed
59 Promotions: increase pieces sizes, better background.
60 Code: use two spaces instead of tabs, everywhere.
61 Increase code line length to 100 or more?
62 (http://katafrakt.me/2017/09/16/80-characters-line-length-limit/)
63 Chat button should be more apparent after game ends (color ?)
64 Reinforce security for problems upload (how ?)
65
66 Later:
67 Let choice of time control, allow correspondance play, several corr games at the same time
68 ==> need to use indexedDB instead of localStorage. Maybe with Dexie https://dexie.org/
69 Each user would have a unique identifier stored in the client DB.
70 Allow to cancel games (if opponent doesn't connect again)
71 Live games storage would be browser-based: different games on smartphone, home computer, work computer... (why not ?)
72 ==> (at most 1) running, and finished (which can be deleted from local memory)
73 Allow challenging a specific player (by his chosen name)
74 But keep the random pairings as main playing way + always playing in ZEN mode
75
76 style menu : surligner onglet courant
77
78 Interface :
79 - newGame: une modalBox à paramètres, timeControl, type d'adversaire ==> "new Game")
80
81 Importer des parties : nécessite de parser le PGN produit (possible, un peu pénible)
82 mais permettrait mode analyse (avec bouton "analyse", comme sur ancien site).
83
84 espagnol : jugada ou movimiento ?
85 fin de la partida au lieu de final de partida ?
86
87 Bouton new game ==> human only. Indiquer adversaire (éventuellement), cadence (ou "infini")
88 Mode analyse : accessible à tout moment d'une partie (HH, ou computer) terminée + bouton "analyze from here" (sur parties observées)
89
90 Coordonnées sur échiquier: sur cases, à gauche (verticale) ou en bas (horizontale)
91
92 Import game : en local dans indexedDb, affichage dans "Games --> Imported"
93
94 Checkered : si intervention d'un 3eme joueur, initialiser son temps à la moyenne des temps restants des deux autres... ?
95
96 Mode contre ordinateur : seulement accessible depuis onglet "Rules" (son principal intérêt)
97
98 Hexachess: McCooey et Shafran (deux tailles, randomisation OK)
99 http://www.math.bas.bg/~iad/tyalie/shegra/shegrax.html
100 http://www.quadibloc.com/chess/ch0401.htm
101
102 Inspiration for refactor:
103 https://github.com/triestpa/Vue-Chess/blob/master/src/components/chessboard/chessboard.js
104 https://github.com/gustaYo/vue-chess