124 lines
3.1 KiB
Markdown
124 lines
3.1 KiB
Markdown
|
|
## 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
|
|
- [The Official Svelte Tutorial](https://svelte.dev/tutorial/basics)
|
|
- SPA Svelte Article [Build a single-page application in Svelte with svelte-spa-router](https://blog.logrocket.com/build-spa-svelte-svelte-spa-router/)
|
|
- [An excellent Svelt Tutorial video series](https://www.youtube.com/watch?v=zojEMeQGGHs&list=PL4cUxeGkcC9hlbrVO_2QFVqVPhlZmz7tO&index=2)
|
|
|
|
|