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