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