Skip to content

SAE501

C’était un projet réalisé en équipe de quatre, où nous devions développer une version en ligne du jeu de société Blanc-manger Coco. Le jeu respectait les règles originales et permettait de jouer jusqu’à quatre participants connectés simultanément.

Au départ, nous avons rencontré plusieurs difficultés techniques, notamment en tentant d’intégrer tout le projet dans une seule application via Nuxt et Nitro en utilisant leur système expérimental de WebSockets. Cependant, cette approche entraînait de nombreux bugs. Nous avons finalement séparé les responsabilités et mis en place un serveur WebSocket sous Express avec Socket.io, ce qui a rendu le projet plus stable et fonctionnel.

Ce projet m’a permis d’approfondir mes compétences en WebSockets, puisque j’avais déjà travaillé sur deux projets similaires auparavant mais avec Vue.js. J’ai également progressé en TypeScript et en programmation orientée objet, en structurant notre serveur WebSocket avec une approche POO.

Grâce à cette expérience, j’ai pu améliorer ma maîtrise des communications en temps réel et développer de meilleures pratiques pour la gestion d’un projet collaboratif intégrant plusieurs technologies.

Exemple de code en POO

js
export enum UserRoles {
    USER = "user",
    TV = "tv",
    LEADER = "leader"
}

export class User {
    username: string;
    id: number;
    role: string;
    socketId: string;
    cards: string[] = [];
    hand: any | null = null;
    win: number = 0;

    constructor(username: string, id: number, role: string = UserRoles.USER, socketId: string) {
        this.username = username;
        this.id = id;
        this.role = role;
        this.socketId = socketId;

    }

    public setHandCard(index: number) {
        this.hand = this.cards[index];
        moveItem(this.cards, index, 0)
        console.log(this.cards)
        return this.hand;
    }

    public deleteCardFromDeck(index: number) {
        this.cards.splice(index, 1)
    }
}