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