Web 3
Travaux
Création du jeu : Magix




Ce travail consiste à vérifier vos connaissances en HTML, JavaScript et PHP en créant un jeu qui se connecte sur le serveur Magix via un API. En concevant votre jeu, vous devrez :
- Utiliser JSON pour échanger des informations avec le serveur et mettre à jour une page via JavaScript
- Utiliser AJAX et un API pour vous connecter au serveur
- Utiliser les langages JS, CSS, HTML et PHP et le framework React
- Utiliser une base de données relationnelle
- Utiliser le gestionnaire de verions git (faites un dépôt privé sur github).
Le jeu est multijoueurs, mais le serveur Magix s'occupe d'en faire la gestion lourde. En communiquant avec ce dernier, vous aurez la possibilité de jouer des parties contre des ordinateurs/joueurs.
Vous devez créer 4 sections à votre site Web :
- La page d'authentification
- La page de lobby (avec les boutons : jouer, pratique et quitter). Cette page doit également contenir le chat/clavardage et un lien vers la page de statistiques.
- La page du jeu
- Une page d'informations (voir plus bas)
Page d'informations - PostgreSQL
Page de notes/stratégies personnelles : Cette page permet à un usager de laisser des notes (ou stratégies personnelles) disponible aux joueurs. Elle doit utiliser la base de données webpgsql.notes-de-cours.com et utiliser un formulaire où l'utilisateur pourra y laisser ses notes. Un usager connecté peut ajouter, modifier et supprimer les notes. Une note possède une date, un sujet et une description. L'affichage doit être de la note la plus récente à la plus vieille.
Les livrables :
- Vos fichiers Web (html, css, js, .jsx, php, jpg, etc)
- Votre dossier ".git", qui contient les informations de votre dépôt git. Important : celui-ci doit être privé et séparé de votre dépôt du cours.
Autres informations:- Vos fichiers Web (html, css, js, .jsx, php, jpg, etc)
- Votre dossier ".git", qui contient les informations de votre dépôt git. Important : celui-ci doit être privé et séparé de votre dépôt du cours.
- Liste de cartes actuellement disponibles dans le jeu : https://magix.apps-de-cours.com/api/cards
- Nombre de cartes maximales sur le board : 7
- Nombre de cartes maximales dans la main : 8
- Le thème/interface du jeu est au choix. Évidemment, il ne doit pas être trop violent ou inapproprié.
- Regardez la grille de correction (voir plus bas) afin d'avoir une idée d'où seront donnés les points
- Vous n'avez pas à mettre le jeu responsive, mais essayez de supporter différentes résolutions d'écran d'ordinateur.
- Utilisez la base de données PostgreSQL du cours de Web 3 (que vous avez utilisé lors de l'exercice StackOverflow).
- Ne PAS ajouter d'autres dépendances dans votre projet react (aucun autre npm install etc.).
Le serveur Magix se trouve au lien suivant : https://magix.apps-de-cours.com/server/
L'implémentation d'une version du jeu (thème) se trouve au lien suivant : https://magix-client.apps-de-cours.com/ . Cependant, vous ne serez pas en mesure de vous connecter sur cette implémentation.
Remise et présentation au professeur:
Le projet doit être remis et présenté à l'enseignant lors du 14e cours de la session. Pour déposer votre projet, créez un fichier compressé de votre projet, et déposez-le ici : U:/ftheriault/Web3/Projet
Pénalité de retard : Si, à la fin du 14e cours, le projet n'est pas remis/présenté, alors une pénalité de 10% de la note finale au projet sera appliquée (renouvelable à chaque jour de retard).
Concernant l'utilisation de l'IA
La seule utilisation permise de l'IA est pour la génération d'images et pour produire certaines fonctions spécifiques (comme une fonction qui fait des particules). L'IA ne doit donc pas être utilisée pour votre logique d'affichage de cartes, ni pour la communication avec votre backend/API.
L'assistant : ChatRoom
Dans le chat, si vous commencez votre message par "Hey Chatroom, ", vous pouvez demander des questions sur le jeu et l'assistant vous répondra au meilleur de ses connaissances.
Tournoi
Un tournoi aura lieu après la remise. Consulter les actualités sur le serveur de Magix, ou sur le serveur Discord pour les détails.