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