lexical adjustment, all licence occurrencies are replaced wit tos word
[brisk.git] / TODO.txt
1  TODO |
2 ------+
3
4   FEATURES |
5  ----------+
6    - AUTO-MAINTENANCE
7      . Terms Of Service acceptance
8        DONE . TOS version
9        DONE . user TOS acceptance (db field)
10        DONE . show TOS ([show me later, yes, no]/[yes, no])
11        DONE . switch-off date
12        DONE . manage accept
13        DONE . manage refuse
14        DONE . show current TOS
15        . WIP disable user reason integer field and remove SUSPEND state (db, php)
16        . checkbox for anonimous users with message when not checked
17        . opt - button on when arrived to the bottom of the TOS
18        . opt - download TOS
19        . min - check TOS version between config file and TOS file
20      . show guaranteer
21
22      . email validation
23
24      . account expiration
25
26
27    WIP - CONTINUE FEATURE
28      . replace explicit strings with multilanguage array
29
30      DONE . save points every game
31      DONE . modify points calculation to include order and mazzo
32      DONE . exclude not standard types from statistics
33          DONE . daily reports (1 for each active tournament)
34          DONE . monthly stats (for normal match only)
35
36      DONE . show current match ID when created
37      DONE . add info about continue to the info page
38      DONE . add command to continue
39        DONE . check consistency of the request
40      DONE . rearrange users and game status to continue the selected match
41
42      DONE . investigate user reordering ??
43
44    - WEBSOCKET TRANSPORT
45      . refactoring $enc attribute management
46      DONE . reintroduced $enc = 'plain' for websocket
47      DONE . fallback for not correct WS version
48      DONE . fini of ws stream
49      DONE . reactivate compression
50      DONE . fix xynt_test01
51      DONE M2: brisk working
52      DONE . manage multiport apache config
53      DONE . manage headers correctly in sac-a-push
54      DONE . manage transport.close method where required
55      DONE . xynt_stream: manage fallback to multiple ports
56      DONE . manage fini for ws
57      POST . server: manage input data from clients
58      POST . manage ping/pong (seems not required)
59
60      DONE . client (xynt_streaming.js)
61      DONE . server (transport.phh)
62
63      DONE M1: xynt_test01.php working
64
65
66    - improved S
67      . db update (add components, maybe single string)
68      . filter in index.php
69      . filter in index_wr.php
70
71    - prefs API:
72      . prefs_assign(content): assign json content as output var
73      . prefs_apply(prefs_new): apply new content to g_prefs and system
74      . prefs_load(content): load json content and apply to g_prefs and system
75
76      . prefs_update: update preferences temporarly
77      . prefs_save: save to the server the new prefs
78
79    - preferences (listen into preferences)
80         // js var, volatile server, (db server || cookie)
81         temporary: js var, volatile server
82         permanent: js var, volatile server, (db server || cookie)
83
84      . data from db OR, if missing, from cookies
85
86      . update values
87      . database change
88      . MANAGE NOT AUTH USERS
89
90    - preferences (with "modifiable S")
91      . Mod. S: new flag into database
92      . graph infrastructure
93      . new box to edit color
94
95   MAJOR |
96  -------+
97    - BUG: some connection to the named socket fails
98    - Not simultaneous more then one stream
99
100
101   MINOR |
102  -------+
103    WIP - try to be more antivirus-friendly
104    - multiple rows between games
105    - packetize and automatize php-ancillary and apache module
106    - DISABLED_TO_FIX: DNS access (perform blocking dns requests, must be fixed)
107
108
109   DONE |
110  ------+
111    DONE - temporarly server hung not reflected on user timeouts
112    DONE - timeouted users are still be able to sit down (only the first at the table is banned)
113    DONE - page still opened after the server restart
114    DONE - log_legal address fix
115    DONE - manage too fast reload in xynt-streaming
116    DONE - add xhr as transport layer and manage different streams better
117    TEST - BUG: pari + 72 non fa 4x ma attualmente fa 3x, da correggere
118    TEST - BUG: lurker are logged out (and remain a pending socket opened (look the spush log)
119    DONE - save/restore database
120    DONE - into the room local step remains -1
121    DONE - centralize all '<script ...' incapsulation to allow multiple transport system.
122    DONE - BUG: access with password from 2 diff browsers the second go in strange "page not found" 
123           in the first tentative, the second works
124    DONE - BUG: access with password from 2 diff browsers place the first in a strict loop (the 
125           problem was a call to a static parent method instead of the overrided child method,
126           substitute self:: with the dynamically get class::)
127    DONE - garbage management
128
129    DONE/FROZEN - problem with getpeer (HOSTADDR)
130
131    DONE - slow cards distribution
132    DONE - substr to mb_substr
133    DONE - parametrizations:
134           . parametrization of $DOCUMENT_ROOT  var in brisk-spush.phh file
135           . parametrization of SITE_PREFIX(_LEN) define
136           . move the name of the named socket into the configuration file
137    DONE - manage and test cross forwarder between table and room
138    DONE - setcookie (for tables only and persist prefs)
139    DONE - images flickering on slow windows: try to poll stream every 300 ms (seems to be download problem)
140    DONE - database connection fails after a while, check close and try PGSQL_CONNECT_FORCE_NEW.
141    DONE - unneeded garbage_time.expired access
142    DONE - BUG: fast loop on stream index_rd_ifra page (js watchdog start without timeout corrupt counts)
143    DONE - BUG: logout failed (fixed with a garbage_collector wrapper at sac-a-push level
144    DONE - 404 wrong page management (remove directories redirections (es. brisk/))
145    DONE - configuration file management
146    DONE - app level keep-alive
147    DONE - index_wr other issues
148    DONE - from room to table
149    DONE - from table to room
150    DONE - chunked
151    DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
152    DONE - partial write for normal page management
153    DONE - index_rd_ifra: last_clean issue
154    DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
155    DONE - bug: after restart index_rd.php receive from prev clients a lot of req
156    DONE - index_wr.php::chat
157    DONE - index_wr.php::exit
158    DONE - index_rd.php porting
159    DONE - generic var management from internet
160    DONE - index.php auth part
161    ABRT - index_wr.php::reload - reload is js-only function
162    ABRT - keepalive management - not interesting for our purposes
163
164  BRISK4 (mammuth)
165  ======
166
167  - STEP MANAGEMENT VERIFY
168  Slim Paragraph
169  DONE - move the garbage timeout on file
170  DONE - in index_rd load all data only when required
171  - briskin5 alignment
172    DONE . extern del garb_timeout
173    DONE . user_load parameters verify
174    DONE . Bin5::load_data and Bin5::save_data refactoring with
175           data split
176    . move many function into "Bin5 class"
177  - garbaging of .step files
178
179  DB: - initial usage
180      DONE - configurabilità file o db
181      DONE - aggiornare le funz di gestione db in modo che prevedano anche il flag DISABLE
182      DONE - travasatore file to pg
183        DONE - travaso punteggi
184        DONE - memorizzazione nuovi i punteggi nel db
185        DONE - gestione classifiche in SQL
186          DONE - produrle
187          DONE - mostrarle
188
189      STEP 1.1
190        DONE - points archiver
191
192      STEP 1.2
193        DONE - partial usability if database go down.
194
195      STEP 1.5
196      - sistema di inserimento nuovi utenti (riversatore da form di inserimento)
197
198      STEP 2
199      - aggiornare le funz di gestione db in modo che prevedano anche il flag SUSPEND
200      - modifica password   
201      - ripristino password 
202
203      STEP 3
204      - comunicazioni di aggiornamento (stato salvato sul server) 
205
206  DONE - var $G_base aggiunta per gestire include in include da path differenti
207
208  BRISK3 (trusty)
209  ======
210   DONE - donameter
211     DONE - G_donors
212     DONE (WOW!) - js object with infos
213     DONE - main logic at login (cookie check in index_rd.php; show_message and createCookie via snippets with block
214            to prevent fast reload)
215     DONE - cookie per non assillare e visualizz.
216     DONE - graphical donameter
217     WIP content (in conf.)
218
219   DONE - numero di tavoli auth-only nel .brisk-install
220   - isolation
221     TEST - ricalcolo delle persone in piedi quando si cambia modalità
222     DONE - se si e' in isolation non si può cambiare nick perdendo l' auth
223     DONE - non leggere le chat di quelli non autenticati (in isolation)
224     DONE - regole per passare alla modalita' (in piedi o ai tavoli autenticati) 
225     DONE - treni non auth da nascondere 
226     DONE - verso gli altri ??: uguale a prima
227
228   finire multilingua (briskin5/index_wr.php e altri se ce ne sono)
229   coniglio
230   only auth strictly
231   placing limits to config file
232
233 Dunque, 
234
235 - come vengono aggiornate le classifiche: ogni giorno alle 23:58
236
237 - cosa cambia tra le tre coppie di classifiche: 
238   ci sono le classifiche dell' ultima settimana, quelle dell' ultimo mese,  e quelle dell' ultimo trimestre,
239   per ognuno di questi lassi di tempo poi c'è la classifica di chi ha giocato più di TOT partite o meno di TOT partite, con TOT che cambia a seconda del lasso di tempo.
240
241 - come vengono calcolate le classifiche: per ogni utente vengono presi tutti i punti fatti ai tavoli con lucchetto nel lasso di tempo preso in considerazione (ultima settimana, ultimo mese o ultimo trimestre), sommati e divisi per il numero di partite fatte in quello stesso lasso di tempo per normalizzare i valori; poi siccome la gente quando vede 0.18734 sbarella ho deciso di moltiplicare il tutto per 100.
242
243 Un esempio per chiarire:
244
245   l'utente 'pippo' che è nuovo gioca 4 partite nell'ultima settimana con i seguenti punteggi:
246     -2, 1, 2, 1
247   lo score viene { [ (-2) + (1) + (2) + (1) ] / 4 }  * 100 = 50.0
248   
249   a parità di score tra utenti va più in alto chi ha giocato più partite.
250
251 Se dopo quelle 4 partite 'pippo' non ne giocherà più, passata una settimana dall'ultima giocata 
252 sparirà dalla classifica settimanale e rimarrà in quelle mensili e trimestrali.
253
254
255   
256
257
258
259
260  BUG
261  ---
262  
263   DONE - paste da demauroparavia
264   DONE - recupero partita per re-login con password
265   DONE - problema "|" nei nomi (manca enhance degli script lato server)
266   - problema col treno se mouse sopra mentre stringe (verif)
267   
268  MINOR
269  -----
270
271  NORMAL
272  ------
273
274   - win test
275   WIP - /listen 
276     DONE - skin della textarea
277     DONE - set cookie 
278     DONE - init client (read from cookie) - ALWAYS BY SERVER
279     DONE - init server
280     DONE - after cookie check auth-only when no-auth case
281     DONE - aggiungi info accanto a "Chat"
282   DONE - /mesgtoadm
283   DONE - img dei comandi
284
285   DONE - form per garantire utenti (accoda in un file nel formato corretto)
286   DONE -   process request
287   DONE -   show form
288   DONE -   close butt
289   DONE -   submit form
290   DONE -   process form js side 
291   DONE -   process form
292   DONE -   documentazione in help
293
294   DONE - user status
295
296   DONE - aggiornare help
297   DONE -   overflow management
298   DONE -   for status
299   -   for password
300
301   DONE - reload home
302   - notify for long pages
303
304   - buddy list
305   - silenziastolti vari (fino al buddy import)
306   - restrict challenge per IP
307   - restricted charset for login
308   - watchdog
309
310   - db (minimal)
311     - db admin page
312     - user db admin
313     - use db 
314     - admin db
315
316     - studiare un anti-dos
317   - login modify
318  DONE  - db (fake)
319  DONE  - display auth
320     - manage preferences 
321
322  minor
323  -----
324    - auth after login
325
326 ----- done ------
327
328  BUG
329  ---
330   DONE   righe troncate
331   DONE - questione "a monte" che:
332   DONE   - lascia fuori il bottone
333   DONE   - scrive &agrave e compagnia
334   DONE - refresh act_table when unauthorized
335   DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
336
337  MINOR
338  -----
339   DONE - refactoring of the owner name (auth attr for owner name)
340   DONE   - room
341   DONE     - at chat input line 
342   DONE     - in the chat output line
343   DONE     - deauth management
344   DONE - table
345   DONE   - at chat input line
346   DONE   - in the chat output line
347   DONE   - for user area of other users
348   DONE   - deauth management
349   DONE - alart to one user
350
351
352  NORMAL
353  ------
354   DONE - strong ban: "expire time|IP|session|(nick if authenticated)"
355   DONE   - login: se auth      -  verifica solo gli expire per quel nick
356   DONE   -        se non auth  -  verifica gli expire per IP e sessione
357   DONE   - riscrivere messaggi
358
359   DONE - login 
360   DONE   - se pass:
361   DONE     - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
362   DONE     - lo legge, ci hasha la password
363   DONE     - invia la pass al server hashata
364   DONE   - se non pass:
365   DONE     - check del login e return corretto
366   DONE     - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
367   DONE     - rename ghost if logged
368   DONE     - onunload_cb e onbeforeunload_cb !!! 
369   DONE   - da change attrs a change class (input field)
370   DONE     - colore del bg per arrivare ad essere omogeneo
371   DONE     - cambiare path e file di config
372   DONE   - login with or without pass
373   DONE   - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
374   DONE     - segnalare tavoli solo per auth
375   DONE     - rename restriction at auth table
376   DONE     - change nick (strcasecmp)
377   DONE   - refact js tables to handle flags
378   DONE - room javascript refactoring
379
380   DONE - work background
381   DONE - reserved tables
382
383
384  BRISK2 (spawn)
385  ======
386
387    
388    URGENT - tables spawn
389             DONE - link with photos
390             DONE - top banner in Etc file
391             DONE - spawn of a table
392             DONE - data to cookies (removed table_idx from xhr calls also)
393             DONE - set subst to shutdowner/shutdowned
394             DONE - return to index.php
395             DONE - game's token
396             DONE - recover of corrupted table data
397             DONE - closure of a table
398             DONE - flush of the table
399             DONE - security checks for right scope access
400             DONE - garbage collector management
401             DONE -    recursive garbage - howto ?
402             DONE - stat & subst in browser
403             DONE - laccwr setting and exit if all players are unactive for some time
404             DONE - the list of test case
405             DONE - shm dimension
406             DONE - remove unused parts
407             DONE - move images
408             DONE - optimizations
409             DONE - cambiare titolo al tavolo
410             DONE - shutdowning lock tables
411             DONE - topbanner
412             DONE - public announcements
413             DONE - 10 sec to exit from table
414
415             FAR - inheritances
416    
417    TRAIN  -  DONE - add again in reload   
418              DONE - wag_set refact
419              DONE - filtra char speciali per title
420              DONE - chatt_send refact 
421              DONE - elenco dei giocatori
422              DONE - documentazione online
423              DONE - timeout management     
424              LATER - border color a muzzo
425        
426    NORM   - testament
427    NORM   - public announcements
428    NORM   - 10 sec to exit from table
429    NORM   - moving label for tables click
430
431 ----------------- join -----------------
432    NORM   - map
433
434    NORM   - restart preload img
435    NORM   - tools dir with a main and some pages where check briscola tools.
436    NORM   - watchdog
437
438    NORM   - chat vecchie in reload (forse)
439
440  MIDDLE TODO
441  ===========
442
443    - user assistant (with button to enable disable)
444    - documentation
445
446
447  FAR TODO
448  ========
449    NORM - internationalization
450    NORM - img -> div + css
451    
452  WEB
453  ===
454
455    - link to stable/unstable
456
457 -------------------------------------------------------------------
458  DONE
459  ====
460
461    ABORTED - asta: highlight buttons (css hover) - change pointer when over
462    DONE - step proxy
463    DONE - special chars in js
464    DONE - ban temporaneo dai tavoli
465    DONE - flash player to play sound
466    DONEBUG - (aum. il timeout) - carte giocate che restano girate
467          Sembra non migliorare di molto la cosa, gestita la cache
468          correttamente, sono apposto.
469
470    DONE - one player reject a game, to less points (<= 2)
471    DONE - help page
472    DONE - test di download per la cache
473    DONE - se passano tutti tranne l'ultimo l'asta va al penultimo.
474           Corretto il codice, occorre verificare se questo
475           ingenera qualche problema.
476    DONE - raddoppiato il numero di righe nella chat
477    DONE - corretto bug del /nick
478    DONE - carosello pubblicità altout
479    DONE - smammamorti
480    DONE - unload of the stream
481    DONE - standup centrati
482    DONE - current player - in info
483    DONE - HELP butt con ABOUT, REGOLE, VERSIONE
484    DONE - welcome lines in the chats (room and table)
485    DONE - welcome lines in the chats (room and table)
486    DONE - nomi in primo piano se vai sul quadrato   
487    DONE - to pass explicit config file to INSTALL.sh
488    DONE - flag to create a config file
489    ABRT - bottoni => immagini
490    DONE - aggiungere bottone al login
491    DONE - nomi in primo piano se vai sul quadrato   
492    DONE - installer to set cookie path
493    DONE - change name
494    DONE - automatic and manual logout
495    DONE - cache problems solved via .htaccess
496    DONE - all players out of the auction
497    DONE - time to send cards
498    DONE - hide cards before sends at a new game
499    DONE - well recognization of the browser and O.S.
500    DONE - login consistency !!!!
501    DONE - functionalization of garbage
502    DONE - call garbage function into login
503    DONE - game
504    DONE - manage the reload from scratch of the table page
505    DONE - table reset
506    DONE - sendcard => card_send(idx, ....)
507    DONE - show table for game
508    DONE - points calculation
509    DONE - make-up of the chooser
510    DONE - where place the briscola on the table
511    DONE - users info
512    DONE - show current auction position
513    DONE - table with internal management of the transition between pages.
514    DONE - server side page abort management  
515    DONE - cookie problem with Ajax
516    DONE - spostare il tasto "esco"
517    DONE - to pass explicit config file to INSTALL.sh 
518    DONE - 8 tables
519    DONE - safety out management
520    DONE - info enhancement and related button (how win the last game and
521           with how much points ?)
522
523  WEB
524    DONE - homepage
525    DONE - screenshots
526
527 DOC
528    CHAPTERS
529       HTTP Streaming
530       Local serializer
531       Database on shmem
532       Page abort (reload on http streaming case)
533       Chat
534       Cookies management
535       CSS tricks
536
537 CHECK ON NEW SERVERS
538 .htaccess AllowOverwrite mode for Cache-Control directive
539
540
541
542
543 */
544