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