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