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