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