removed inher field from usersnet table
[brisk.git] / TODO.txt
1  TODO |
2 ------+
3
4   BUGS |
5  ------+
6    - Global vars checker
7    - Not triple chars between letters
8    - usermgmt: add user delete
9    DONE - 10002 message when already clicked
10    DONE - trim spaces in apprentice form
11    DONE - Remove books from chat
12    DONE - usermgmt: add email
13
14   FEATURES |
15  ----------+
16    * inherited info
17    * Users Network construction
18      DONE - sql
19      DONE - dbase API
20      DONE - add apprentices tables
21      - remove entry when set unknown
22      - enhance info interface
23        . disable parts of interface
24      - minisplash at end of the match
25      - differentiate table authorization
26    * add new kind of isolation for apprentice
27
28    * Double click on chat to open preferences
29
30    * APPRENTICE
31      Phase2
32      DONE - match counters (part 2)
33        DONE . migration script for old users
34      - guarantee for apprentice
35
36
37
38 ---------
39    - APPRENTICE
40      Phase2
41      DONE - match counters (part 2)
42        DONE . migration script for old users
43
44    - APPRENTICE
45      Phase1
46      DONE - correggere minuta giornaliera
47      DONE - aggiungere mask per autogar
48      DONE - correggere email per apprentice
49      DONE - verificare la variabile per tout IP ban apprentice
50      DONE - chat ban for apprentice
51
52      DONE - ip check and time limit
53        DONE . sql
54          DONE . temporary table limitation
55        DONE . message
56      DONE - usermgmt extension
57      DONE - add close button
58      DONE - add apprentice icon
59      DONE - match counters (part 1)
60        DONE . sql for match counters
61      DONE - new info system
62        DONE - click management
63        DONE - show user info (RO)
64          DONE - require command/info
65          DONE - fix fiverank table
66          DONE - fix bug with bitwise
67          DONE - fix layout of tables
68      DONE - aggiungere books.png
69
70     - MENTORS
71      - listen all
72
73    - BUDDY LIST
74      - white list
75      - black list
76      - delegate
77
78    - DEANONYMIZER
79       . study how to move login delta injection
80
81    - CERTIFICATIONS
82       DONE . Guarantes for certified-only (buttons choice managed)
83       DONE . Tables for certified-only
84       . Term Of Use
85       . Placing for certified-only
86
87    - IP CLASSES BAN
88       DONE . BAN and BLACK lists added
89       DONE . update method to SIGHUP manager
90       DONE . create constructor refactored
91
92    - PLACEMENT-NORMALIZATION
93       DONE . Normalize previous points
94       DONE . Denormalize "Info" view
95       DONE . Denormalize explained matches
96       DONE . Check placement
97       DONE . Distinguish between inherited mult and local mult
98
99    - AUTO-MAINTENANCE
100      DONE . Terms Of Service acceptance
101        DONE . print date of hard switch
102        DONE . TOS version
103        DONE . user TOS acceptance (db field)
104        DONE . show TOS ([show me later, yes, no]/[yes, no])
105        DONE . switch-off date
106        DONE . manage accept
107        DONE . manage refuse
108        DONE . show current TOS
109        DONE . disable user reason integer field and remove SUSPEND state (db, php)
110        DONE . fix tos layout
111        DONE . opt - download TOS
112        . opt - checkbox for anonimous users with message when not checked
113        . opt - button enabled when arrived to the bottom of the TOS only
114        . opt - check TOS version between config file and TOS file
115      DONE . show guarantee (/guar <login> command)
116        DONE . multi-language
117        DONE . command documentation
118        DONE . manage disagreeding users investigation
119        DONE . self guaranteed
120      . DONE New Users Guarantee Procedure
121        . DONE Change guarantee workflow
122        . DONE Db update
123
124          UserA                 UserB                      Admin
125 -------------------------------------------------------------------------
126       guarante UserB
127            |
128            v
129       Save on mail
130          table,
131       email to UserB
132     (Disabled, MAILED)
133 -------------------------------------------------------------------------
134                            Receive email
135                            to check address
136                                  |
137                                  v
138                            Click on link
139                                  |
140                                  v
141                            Check on mail
142                                table,
143                            update user status,
144                            delete mail rec
145                           (Disabled, TOBECHK)
146 -------------------------------------------------------------------------
147                                                        admin panel
148                                                        accept user
149                                                             |
150                                                             v
151                                                      send email with
152                                                      password,
153                                                      update user status
154                                                       (Normal, NONE)
155 -------------------------------------------------------------------------
156                            Receive email
157                            with password
158 -------------------------------------------------------------------------
159
160      DONE . More user info in the list
161      DONE . Manage date to display when a user was required
162      . Email-address expiration check
163      . Account expiration
164
165
166    DONE - CONTINUE FEATURE
167      DONE . replace explicit strings with multilanguage array
168      DONE . add a php downloader with filtering on allowed requests
169      DONE . save points every game
170      DONE . modify points calculation to include order and mazzo
171      DONE . exclude not standard types from statistics
172          DONE . daily reports (1 for each active tournament)
173          DONE . monthly stats (for normal match only)
174      DONE . show current match ID when created
175      DONE . add info about continue to the info page
176      DONE . add command to continue
177          DONE . check consistency of the request
178      DONE . rearrange users and game status to continue the selected match
179      DONE . investigate user reordering ??
180
181    - WEBSOCKET TRANSPORT
182      . refactoring $enc attribute management
183      DONE . reintroduced $enc = 'plain' for websocket
184      DONE . fallback for not correct WS version
185      DONE . fini of ws stream
186      DONE . reactivate compression
187      DONE . fix xynt_test01
188      DONE M2: brisk working
189      DONE . manage multiport apache config
190      DONE . manage headers correctly in sac-a-push
191      DONE . manage transport.close method where required
192      DONE . xynt_stream: manage fallback to multiple ports
193      DONE . manage fini for ws
194      POST . server: manage input data from clients
195      POST . manage ping/pong (seems not required)
196
197      DONE . client (xynt_streaming.js)
198      DONE . server (transport.phh)
199
200      DONE M1: xynt_test01.php working
201
202
203    - improved S
204      . db update (add components, maybe single string)
205      . filter in index.php
206      . filter in index_wr.php
207
208    - prefs API:
209      . prefs_assign(content): assign json content as output var
210      . prefs_apply(prefs_new): apply new content to g_prefs and system
211      . prefs_load(content): load json content and apply to g_prefs and system
212
213      . prefs_update: update preferences temporarly
214      . prefs_save: save to the server the new prefs
215
216    - preferences (listen into preferences)
217         // js var, volatile server, (db server || cookie)
218         temporary: js var, volatile server
219         permanent: js var, volatile server, (db server || cookie)
220
221      . data from db OR, if missing, from cookies
222
223      . update values
224      . database change
225      . MANAGE NOT AUTH USERS
226
227    - preferences (with "modifiable S")
228      . Mod. S: new flag into database
229      . graph infrastructure
230      . new box to edit color
231
232   MAJOR |
233  -------+
234    - BUG: some connection to the named socket fails
235    - Not simultaneous more then one stream
236
237
238   MINOR |
239  -------+
240    WIP - try to be more antivirus-friendly
241    - multiple rows between games
242    - packetize and automatize php-ancillary and apache module
243    - DISABLED_TO_FIX: DNS access (perform blocking dns requests, must be fixed)
244
245
246   DONE |
247  ------+
248    DONE - temporarly server hung not reflected on user timeouts
249    DONE - timeouted users are still be able to sit down (only the first at the table is banned)
250    DONE - page still opened after the server restart
251    DONE - log_legal address fix
252    DONE - manage too fast reload in xynt-streaming
253    DONE - add xhr as transport layer and manage different streams better
254    TEST - BUG: pari + 72 non fa 4x ma attualmente fa 3x, da correggere
255    TEST - BUG: lurker are logged out (and remain a pending socket opened (look the spush log)
256    DONE - save/restore database
257    DONE - into the room local step remains -1
258    DONE - centralize all '<script ...' incapsulation to allow multiple transport system.
259    DONE - BUG: access with password from 2 diff browsers the second go in strange "page not found" 
260           in the first tentative, the second works
261    DONE - BUG: access with password from 2 diff browsers place the first in a strict loop (the 
262           problem was a call to a static parent method instead of the overrided child method,
263           substitute self:: with the dynamically get class::)
264    DONE - garbage management
265
266    DONE/FROZEN - problem with getpeer (HOSTADDR)
267
268    DONE - slow cards distribution
269    DONE - substr to mb_substr
270    DONE - parametrizations:
271           . parametrization of $DOCUMENT_ROOT  var in brisk-spush.phh file
272           . parametrization of SITE_PREFIX(_LEN) define
273           . move the name of the named socket into the configuration file
274    DONE - manage and test cross forwarder between table and room
275    DONE - setcookie (for tables only and persist prefs)
276    DONE - images flickering on slow windows: try to poll stream every 300 ms (seems to be download problem)
277    DONE - database connection fails after a while, check close and try PGSQL_CONNECT_FORCE_NEW.
278    DONE - unneeded garbage_time.expired access
279    DONE - BUG: fast loop on stream index_rd_ifra page (js watchdog start without timeout corrupt counts)
280    DONE - BUG: logout failed (fixed with a garbage_collector wrapper at sac-a-push level
281    DONE - 404 wrong page management (remove directories redirections (es. brisk/))
282    DONE - configuration file management
283    DONE - app level keep-alive
284    DONE - index_wr other issues
285    DONE - from room to table
286    DONE - from table to room
287    DONE - chunked
288    DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
289    DONE - partial write for normal page management
290    DONE - index_rd_ifra: last_clean issue
291    DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
292    DONE - bug: after restart index_rd.php receive from prev clients a lot of req
293    DONE - index_wr.php::chat
294    DONE - index_wr.php::exit
295    DONE - index_rd.php porting
296    DONE - generic var management from internet
297    DONE - index.php auth part
298    ABRT - index_wr.php::reload - reload is js-only function
299    ABRT - keepalive management - not interesting for our purposes
300
301  BRISK4 (mammuth)
302  ======
303
304  - STEP MANAGEMENT VERIFY
305  Slim Paragraph
306  DONE - move the garbage timeout on file
307  DONE - in index_rd load all data only when required
308  - briskin5 alignment
309    DONE . extern del garb_timeout
310    DONE . user_load parameters verify
311    DONE . Bin5::load_data and Bin5::save_data refactoring with
312           data split
313    . move many function into "Bin5 class"
314  - garbaging of .step files
315
316  DB: - initial usage
317      DONE - configurabilitĂ  file o db
318      DONE - aggiornare le funz di gestione db in modo che prevedano anche il flag DISABLE
319      DONE - travasatore file to pg
320        DONE - travaso punteggi
321        DONE - memorizzazione nuovi i punteggi nel db
322        DONE - gestione classifiche in SQL
323          DONE - produrle
324          DONE - mostrarle
325
326      STEP 1.1
327        DONE - points archiver
328
329      STEP 1.2
330        DONE - partial usability if database go down.
331
332      STEP 1.5
333      - sistema di inserimento nuovi utenti (riversatore da form di inserimento)
334
335      STEP 2
336      - modifica password   
337      - ripristino password 
338
339      STEP 3
340      - comunicazioni di aggiornamento (stato salvato sul server) 
341
342  DONE - var $G_base aggiunta per gestire include in include da path differenti
343
344  BRISK3 (trusty)
345  ======
346   DONE - donameter
347     DONE - G_donors
348     DONE (WOW!) - js object with infos
349     DONE - main logic at login (cookie check in index_rd.php; show_message and createCookie via snippets with block
350            to prevent fast reload)
351     DONE - cookie per non assillare e visualizz.
352     DONE - graphical donameter
353     WIP content (in conf.)
354
355   DONE - numero di tavoli auth-only nel .brisk-install
356   - isolation
357     TEST - ricalcolo delle persone in piedi quando si cambia modalitĂ 
358     DONE - se si e' in isolation non si può cambiare nick perdendo l' auth
359     DONE - non leggere le chat di quelli non autenticati (in isolation)
360     DONE - regole per passare alla modalita' (in piedi o ai tavoli autenticati) 
361     DONE - treni non auth da nascondere 
362     DONE - verso gli altri ??: uguale a prima
363
364   finire multilingua (briskin5/index_wr.php e altri se ce ne sono)
365   coniglio
366   only auth strictly
367   placing limits to config file
368
369 Dunque, 
370
371 - come vengono aggiornate le classifiche: ogni giorno alle 23:58
372
373 - cosa cambia tra le tre coppie di classifiche: 
374   ci sono le classifiche dell' ultima settimana, quelle dell' ultimo mese,  e quelle dell' ultimo trimestre,
375   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.
376
377 - 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.
378
379 Un esempio per chiarire:
380
381   l'utente 'pippo' che Ă¨ nuovo gioca 4 partite nell'ultima settimana con i seguenti punteggi:
382     -2, 1, 2, 1
383   lo score viene { [ (-2) + (1) + (2) + (1) ] / 4 }  * 100 = 50.0
384   
385   a paritĂ  di score tra utenti va piĂą in alto chi ha giocato piĂą partite.
386
387 Se dopo quelle 4 partite 'pippo' non ne giocherĂ  piĂą, passata una settimana dall'ultima giocata 
388 sparirĂ  dalla classifica settimanale e rimarrĂ  in quelle mensili e trimestrali.
389
390
391   
392
393
394
395
396  BUG
397  ---
398  
399   DONE - paste da demauroparavia
400   DONE - recupero partita per re-login con password
401   DONE - problema "|" nei nomi (manca enhance degli script lato server)
402   - problema col treno se mouse sopra mentre stringe (verif)
403   
404  MINOR
405  -----
406
407  NORMAL
408  ------
409
410   - win test
411   WIP - /listen 
412     DONE - skin della textarea
413     DONE - set cookie 
414     DONE - init client (read from cookie) - ALWAYS BY SERVER
415     DONE - init server
416     DONE - after cookie check auth-only when no-auth case
417     DONE - aggiungi info accanto a "Chat"
418   DONE - /mesgtoadm
419   DONE - img dei comandi
420
421   DONE - form per garantire utenti (accoda in un file nel formato corretto)
422   DONE -   process request
423   DONE -   show form
424   DONE -   close butt
425   DONE -   submit form
426   DONE -   process form js side 
427   DONE -   process form
428   DONE -   documentazione in help
429
430   DONE - user status
431
432   DONE - aggiornare help
433   DONE -   overflow management
434   DONE -   for status
435   -   for password
436
437   DONE - reload home
438   - notify for long pages
439
440   - buddy list
441   - silenziastolti vari (fino al buddy import)
442   - restrict challenge per IP
443   - restricted charset for login
444   - watchdog
445
446   - db (minimal)
447     - db admin page
448     - user db admin
449     - use db 
450     - admin db
451
452     - studiare un anti-dos
453   - login modify
454  DONE  - db (fake)
455  DONE  - display auth
456     - manage preferences 
457
458  minor
459  -----
460    - auth after login
461
462 ----- done ------
463
464  BUG
465  ---
466   DONE   righe troncate
467   DONE - questione "a monte" che:
468   DONE   - lascia fuori il bottone
469   DONE   - scrive &agrave e compagnia
470   DONE - refresh act_table when unauthorized
471   DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
472
473  MINOR
474  -----
475   DONE - refactoring of the owner name (auth attr for owner name)
476   DONE   - room
477   DONE     - at chat input line 
478   DONE     - in the chat output line
479   DONE     - deauth management
480   DONE - table
481   DONE   - at chat input line
482   DONE   - in the chat output line
483   DONE   - for user area of other users
484   DONE   - deauth management
485   DONE - alart to one user
486
487
488  NORMAL
489  ------
490   DONE - strong ban: "expire time|IP|session|(nick if authenticated)"
491   DONE   - login: se auth      -  verifica solo gli expire per quel nick
492   DONE   -        se non auth  -  verifica gli expire per IP e sessione
493   DONE   - riscrivere messaggi
494
495   DONE - login 
496   DONE   - se pass:
497   DONE     - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
498   DONE     - lo legge, ci hasha la password
499   DONE     - invia la pass al server hashata
500   DONE   - se non pass:
501   DONE     - check del login e return corretto
502   DONE     - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
503   DONE     - rename ghost if logged
504   DONE     - onunload_cb e onbeforeunload_cb !!! 
505   DONE   - da change attrs a change class (input field)
506   DONE     - colore del bg per arrivare ad essere omogeneo
507   DONE     - cambiare path e file di config
508   DONE   - login with or without pass
509   DONE   - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
510   DONE     - segnalare tavoli solo per auth
511   DONE     - rename restriction at auth table
512   DONE     - change nick (strcasecmp)
513   DONE   - refact js tables to handle flags
514   DONE - room javascript refactoring
515
516   DONE - work background
517   DONE - reserved tables
518
519
520  BRISK2 (spawn)
521  ======
522
523    
524    URGENT - tables spawn
525             DONE - link with photos
526             DONE - top banner in Etc file
527             DONE - spawn of a table
528             DONE - data to cookies (removed table_idx from xhr calls also)
529             DONE - set subst to shutdowner/shutdowned
530             DONE - return to index.php
531             DONE - game's token
532             DONE - recover of corrupted table data
533             DONE - closure of a table
534             DONE - flush of the table
535             DONE - security checks for right scope access
536             DONE - garbage collector management
537             DONE -    recursive garbage - howto ?
538             DONE - stat & subst in browser
539             DONE - laccwr setting and exit if all players are unactive for some time
540             DONE - the list of test case
541             DONE - shm dimension
542             DONE - remove unused parts
543             DONE - move images
544             DONE - optimizations
545             DONE - cambiare titolo al tavolo
546             DONE - shutdowning lock tables
547             DONE - topbanner
548             DONE - public announcements
549             DONE - 10 sec to exit from table
550
551             FAR - inheritances
552    
553    TRAIN  -  DONE - add again in reload   
554              DONE - wag_set refact
555              DONE - filtra char speciali per title
556              DONE - chatt_send refact 
557              DONE - elenco dei giocatori
558              DONE - documentazione online
559              DONE - timeout management     
560              LATER - border color a muzzo
561        
562    NORM   - testament
563    NORM   - public announcements
564    NORM   - 10 sec to exit from table
565    NORM   - moving label for tables click
566
567 ----------------- join -----------------
568    NORM   - map
569
570    NORM   - restart preload img
571    NORM   - tools dir with a main and some pages where check briscola tools.
572    NORM   - watchdog
573
574    NORM   - chat vecchie in reload (forse)
575
576  MIDDLE TODO
577  ===========
578
579    - user assistant (with button to enable disable)
580    - documentation
581
582
583  FAR TODO
584  ========
585    NORM - internationalization
586    NORM - img -> div + css
587    
588  WEB
589  ===
590
591    - link to stable/unstable
592
593 -------------------------------------------------------------------
594  DONE
595  ====
596
597    ABORTED - asta: highlight buttons (css hover) - change pointer when over
598    DONE - step proxy
599    DONE - special chars in js
600    DONE - ban temporaneo dai tavoli
601    DONE - flash player to play sound
602    DONEBUG - (aum. il timeout) - carte giocate che restano girate
603          Sembra non migliorare di molto la cosa, gestita la cache
604          correttamente, sono apposto.
605
606    DONE - one player reject a game, to less points (<= 2)
607    DONE - help page
608    DONE - test di download per la cache
609    DONE - se passano tutti tranne l'ultimo l'asta va al penultimo.
610           Corretto il codice, occorre verificare se questo
611           ingenera qualche problema.
612    DONE - raddoppiato il numero di righe nella chat
613    DONE - corretto bug del /nick
614    DONE - carosello pubblicitĂ  altout
615    DONE - smammamorti
616    DONE - unload of the stream
617    DONE - standup centrati
618    DONE - current player - in info
619    DONE - HELP butt con ABOUT, REGOLE, VERSIONE
620    DONE - welcome lines in the chats (room and table)
621    DONE - welcome lines in the chats (room and table)
622    DONE - nomi in primo piano se vai sul quadrato   
623    DONE - to pass explicit config file to INSTALL.sh
624    DONE - flag to create a config file
625    ABRT - bottoni => immagini
626    DONE - aggiungere bottone al login
627    DONE - nomi in primo piano se vai sul quadrato   
628    DONE - installer to set cookie path
629    DONE - change name
630    DONE - automatic and manual logout
631    DONE - cache problems solved via .htaccess
632    DONE - all players out of the auction
633    DONE - time to send cards
634    DONE - hide cards before sends at a new game
635    DONE - well recognization of the browser and O.S.
636    DONE - login consistency !!!!
637    DONE - functionalization of garbage
638    DONE - call garbage function into login
639    DONE - game
640    DONE - manage the reload from scratch of the table page
641    DONE - table reset
642    DONE - sendcard => card_send(idx, ....)
643    DONE - show table for game
644    DONE - points calculation
645    DONE - make-up of the chooser
646    DONE - where place the briscola on the table
647    DONE - users info
648    DONE - show current auction position
649    DONE - table with internal management of the transition between pages.
650    DONE - server side page abort management  
651    DONE - cookie problem with Ajax
652    DONE - spostare il tasto "esco"
653    DONE - to pass explicit config file to INSTALL.sh 
654    DONE - 8 tables
655    DONE - safety out management
656    DONE - info enhancement and related button (how win the last game and
657           with how much points ?)
658
659  WEB
660    DONE - homepage
661    DONE - screenshots
662
663 DOC
664    CHAPTERS
665       HTTP Streaming
666       Local serializer
667       Database on shmem
668       Page abort (reload on http streaming case)
669       Chat
670       Cookies management
671       CSS tricks
672
673 CHECK ON NEW SERVERS
674 .htaccess AllowOverwrite mode for Cache-Control directive
675
676
677
678
679 */
680