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