Sorry but this is in french 🥖 😅
Ce jeu de société inspiré de TTMC, "tu te mets combien" a pour but d'aider à développer sa culture dev tout en s'amusant.
- Lance ces commandes dans ton terminal :
pnpm install # ou npm
pnpm run dev # ou npm
- Ouvre cette url.
Le projet utilise vite pour se lancer mais il est écrit en Vanilla JavaScript à l'exception de rehype pour gérer le markdown dans le JSON des cartes.
Lorsqu'on devient développeur il y a énormément de vocabulaire, nouvelles notions et concepts à assimiler ce qui peut vite devenir compliquer à gérer. En plus, ce n'est pas toujours amusant d'emmagasiner toute cette théorie.
Malhereusement, c'est le genre de choses qu'on va souvent retrouver en entretien tech 😬 C'est pourquoi j'ai voulu créer ce jeu. Pour pouvoir découvrir les choses petit à petit et améliorer sa culture tech sans trop se prendre la tête 🥴
L'idée c'est d'avoir un maximum de cartes pour permettre d'améliorer la rejouabilité. Aussi, j'essaye, autant que possible de baser les questions sur des choses qui reviennent souvent en entretien.
Il existe 4 catégories de questions :
- Dev front : tout ce qui concerne le dev web front, autrement-dit le HTML/CSS/JS, mais aussi les frameworks comme React, ou même des notions de UI/UX, accessibilité, etc.
- Dev back : le developpement de backend, d'apis, les bases de données, le dev ops, etc.
- Algo et paradigmes : les algorithmes et notion d'optimisation, ainsi que les paradigmes de programmation, bonnes pratiques, design patterns, etc.
- Dev tools tout ce qui n'est pas directement du code mais concerne le dev (les editeurs de code et autres outils, services en ligne, etc.)
Ajoute les dans une issue sur le répo !
Si jamais tu remarques une faute d'orthographe, un contenu pas clair ou imprécis, c'est une bonne raison de proposer une modification !
Tu peux forker le repo et modifier src/cards.json
pour y ajouter tes changements, puis soumettre une pull request ✨
Tu peux forker le repo, rajouter ta carte dans src/cards.json
, puis soumettre une pull request ✨
Chaque carte doit contenir :
- un thème
theme
, de maximum 60 caractères - une catégorie
category
parmi"dev-front"
,"dev-back"
,"dev-tools"
et"algo-paradigms"
- un tableau de questions
questions
, chaque question doit faire maximum 120 caractères - un tableau de réponses
answers
, chaque réponse doit faire maximum 120 caractères
Attention, les questions doivent être de plus en plus dures !
Par exemple le json :
{
"theme": "Déclaration de Variables JS",
"category": "dev-front",
"questions": [
"Quel mot clé entre `let`, `var`, et `if` ne permet pas de déclarer une variable ?",
"Quel est le mot clé utilisé pour déclarer une variable dont la valeur ne doit pas changer ?",
"Est-ce qu'une variable peut changer de type après sa déclaration ?",
"Comment appelle-t-on la syntaxe qui permet de déclarer plusieurs variables à partir des champs d'un object ?",
"Qu'est-ce que le hoisting et quel mot clé permet de hoister une variable ?"
],
"answers": [
"`if`, c'est pour les conditions !",
"`const`",
"Oui. JS est un langage au typage dynamique, ce qui fait que le type d'une variable peut changer n'importe quand.",
"On appelle cette syntaxe la destructuration. Par exemple: `const {name, age} = person;`",
"Le hoisting permet d'accéder à une variable avant sa déclaration. On utilise le mot clé `var` pour hoister une variable."
]
}
Génère la carte suivante :
Vous pouvez contribuer sur les fonctionnalités aussi si vous voulez 🙃 :
- Générer les cartes par thème en fonction du Json
- Implémenter le style pour chacune des cartes
- Écrire les règles du jeu
- Générer ou designer le plateau de jeu
- Écrire une planche par cartes spéciales (bugs et pause café)
- Faire un logo
- Écris au moins 1 planche (9 cartes par thème)
- Écrire une planche de
startGame();
et une planche dereturn winner;
- Générer correctement l'espacement entre les différentes pages à l'impression (pour avoir 9 cartes par page en faisant
⌘+P
) - Faire en sorte d'avoir 9 cartes par page et 9 dos correspondant sur la page suivante (plutòt que les dos directement à la suite)
- Générer les cartes spéciales (bug, pause café, startGame et return winner) à partir d'un Json
- Trouver un autre nom
- Faire une landing page
- Faire une version en ligne