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