2022-11-02 11:14:37 +01:00
2022-10-31 18:10:33 +01:00
2022-10-20 17:00:28 +02:00
2022-10-31 18:10:33 +01:00
2022-10-31 18:10:33 +01:00
2022-10-28 13:06:34 +02:00

Pour lancer le docker :

  • Il faut un fichier .env qu'on ne doit pas push, donc je ne le push pas.
  • Pour l'instant, on doit donc le faire à la main (je verrai par la suite comment faire mieux).
  • Dans le .env il y a juste à mettre (sans les guillemets) "NODE_ENV=development" ou "NODE_ENV=production".
  • Il faut le placer au même endroit que docker-compose.yml
  • Dans le makefile il y a un sedf pour changer l'un ou l'autre.

TODO List : Utilisateur édition.

  • Utilisateur : faire la base pour un utilisateur
  • Utilisateur : faire le système de requêtes amis
  • Utilisateur : mettre en place le système de session (voire de statut ?)
  • Utilisateur : mettre en place le système d'avatar
  • Utilisateur : mettre en place la double authentification
  • Utilisateur : mettre en place le système d'Oauth
  • Utilisateur : mettre en place la hashage de mot de passe (avec Oauth)
  • Utilisateur : mettre en place le système de statut
  • Utilisateur : mettre en place le système de stats
  • Utilisateur : mettre en place l'historique des matches

TODO List : Docker édition.

  • Docker : trouver un moyen simple de générer un .env. Peut-être renouveller les clé à chaque lancement.

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


Resources

Svelte

Description
No description provided
Readme 67 MiB
Languages
TypeScript 66.7%
Svelte 30.2%
Shell 1.6%
JavaScript 0.6%
CSS 0.4%
Other 0.5%