## questions : - choose a secondary browser - choose solution to rootless mode (VM, rebuild, unique root uid) - choose 2fa method : texto ? Google Authentication ? - when chat-room owner leaves what happens ? - can chat-room administrators ban and mute other administrators ? - game technologie (canvas ?) --- ## tasks : #### luke - getting started with Javascript - getting started with Node.js/Nest.js - pong game solo front-end (canvas ? js ?) - add multiplayers to Pong with Node.js (without database, accounts, ...) #### eric - getting started with Javascript - getting started with framework TypeScript front-end (Svelte ?) - single-page démo, sans back-end - chat front-end ? (tester avec des messages random locaux) #### hugo - getting started with Javascript - getting started with Node.js/Nest.js - getting started with PostgreSQL --- ## instructions : #### global instructions : - [ ] backend in NestJs - [ ] frontend any TypeScript framework - [ ] latest stable version of any library or framework used - [ ] use only PostgreSQL db - [ ] single page application - [ ] navigator back and forward button working - [ ] works on last Chrome and another browser - [ ] launch with "docker-compose up --build", put in sgoinfre, in rootless mode - [ ] can't use bind-mount volumes : 1. docker in VM ? 2. rebuild after changes ? 3. craft own imags with root as unique UID #### security concerns : - [ ] hash every passwords in db - [ ] protection against SQL injections - [ ] server-side validation of users inputs - [ ] store credentials in local .env git-ignored #### user account : - [ ] login with 42 intranet OAuth system - [ ] user can choose name, avatar, 2fa (ex texto or Google Authenticator) - [ ] display user name on site - [ ] user default avatar if not chosen - [ ] user can add friends, and see status (online/offline, in game, ...) - [ ] display stats on user profile (wins, losses, ladderm levelm achievements, ...) - [ ] public match history (lvl games, ladder, ...) #### chat : - [ ] can create chat-rooms (public/private, password protected) - [ ] send direct messages - [ ] block other users - [ ] creators of chat-room are owners, untill they leave - [ ] chat-room owner can set, change, remove password - [ ] chat-room owner is administrator and can set other administrators - [ ] administrators can ban or mute for a time other users - [ ] send game invitation in chat - [ ] view user profiles from chat #### game : - [ ] play pong with others on website - [ ] matchmaking system : join a queue untill automatic match - [ ] faithfull to original pong (1972) - [ ] customs options (powers up, multiple maps, ...), with a default one - [ ] reponsive - [ ] can watch other matchs