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