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