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