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