d55f3eedf5e2bac22eb39aba260714307445093e
- CONFLICT srcs/requirements/svelte/api_front/public/build/bundle.js
- CONFLICT srcs/requirements/svelte/api_front/public/build/bundle.js.map
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.
-
also add an alias for transcendance in /etc/hosts
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.
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 :
- docker in VM ?
- rebuild after changes ?
- 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
error msg
Svelte
- The Official Svelte Tutorial
- SPA Svelte Article Build a single-page application in Svelte with svelte-spa-router
- An excellent Svelt Tutorial video series
- to check svelte logs, do a 'docker logs --follow '
nestjs
websocket
- game networking
- client-server game architecture
- websocket api mozilla doc
- websocket rfc
- ws doc npm
- exemple chat implementation
- websocket and nginx
css
security
- xss attack with innerHTML
- xss attack innerHTML prevention
- xss attack prevention with createTextNode
- xss attacks prevention in svelte
installation
Description
Languages
TypeScript
66.7%
Svelte
30.2%
Shell
1.6%
JavaScript
0.6%
CSS
0.4%
Other
0.5%