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