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