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