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