Messagerie Instantanée Fax : Différence entre versions
(→Photos) |
(→Photos) |
||
Ligne 110 : | Ligne 110 : | ||
! Language !! Fonction !! Photo | ! Language !! Fonction !! Photo | ||
|- | |- | ||
− | |rowspan="2" | Html || Head || [[Fichier:FaXHTMLHead.jpg | 400px]] | + | |style="background: #a5d8ff;" rowspan="2" | Html || Head || [[Fichier:FaXHTMLHead.jpg | 400px]] |
|- | |- | ||
| Body || [[Fichier:FaXHTMLBody.jpg | 400px]] | | Body || [[Fichier:FaXHTMLBody.jpg | 400px]] | ||
|- | |- | ||
− | |rowspan="5" | Css || Body et H1 || [[Fichier:FaXCssBodyH1.jpg | | + | |style="background-color: #ced4da;" rowspan="5" | Css || Body et H1 || [[Fichier:FaXCssBodyH1.jpg | 150px]] |
|- | |- | ||
− | | Container || [[Fichier:FaXCssContainerZonechatMessage.jpg | | + | | Container || [[Fichier:FaXCssContainerZonechatMessage.jpg | 150px]] |
|- | |- | ||
− | | Message envoy/reçu || [[Fichier:FaXCssContainerZonechatMessage.jpg | | + | | Message envoy/reçu || [[Fichier:FaXCssContainerZonechatMessage.jpg | 150px]] |
|- | |- | ||
− | | Boîte de texte || [[Fichier:FaXCssTextBoxBtn.jpg | | + | | Boîte de texte || [[Fichier:FaXCssTextBoxBtn.jpg | 350px]] |
|- | |- | ||
| Illumination des boîtes || [[Fichier:FaXCssLight.jpg | 400px]] | | Illumination des boîtes || [[Fichier:FaXCssLight.jpg | 400px]] | ||
|- | |- | ||
− | |rowspan="4"| App.Js || Variables || [[Fichier:FaXAppJsConst.jpg | 400px]] | + | |style="background: #a5d8ff;" rowspan="4"| App.Js || Variables || [[Fichier:FaXAppJsConst.jpg | 400px]] |
|- | |- | ||
| Fonction SendMsg || [[Fichier:FaXAppJsFuctionSendMessage.jpg | 400px]] | | Fonction SendMsg || [[Fichier:FaXAppJsFuctionSendMessage.jpg | 400px]] | ||
Ligne 130 : | Ligne 130 : | ||
| Evenement Socket.io || [[Fichier:FaXAppJsEventSocketIoMessageEnvoyeOuRecu.jpg | 400px]] | | Evenement Socket.io || [[Fichier:FaXAppJsEventSocketIoMessageEnvoyeOuRecu.jpg | 400px]] | ||
|- | |- | ||
− | | evenement envoy || [[Fichier:FaXAppJsEventEnvoyMessage.jpg | | + | | evenement envoy || [[Fichier:FaXAppJsEventEnvoyMessage.jpg | 500px]] |
|- | |- | ||
− | |rowspan="5"| Server.js || Variables || [[Fichier:FaXServerJsConst.jpg | | + | |style="background-color: #ced4da;" rowspan="5"| Server.js || Variables || [[Fichier:FaXServerJsConst.jpg | 300px]] |
|- | |- | ||
| Requete/réponse || [[Fichier:FaXServerJsRequeteReponse.jpg | 400px]] | | Requete/réponse || [[Fichier:FaXServerJsRequeteReponse.jpg | 400px]] | ||
|- | |- | ||
− | | Evenement connection/deconnection || [[Fichier:FaXServerJsConsoleConnectionDeco.jpg | | + | | Evenement connection/deconnection || [[Fichier:FaXServerJsConsoleConnectionDeco.jpg | 300px]] |
|- | |- | ||
− | | Evenement Message || [[Fichier:FaXServerJsEventChatMessage.jpg | | + | | Evenement Message || [[Fichier:FaXServerJsEventChatMessage.jpg | 200px]] |
|- | |- | ||
− | | Port utilisé || [[Fichier:FaXServerJsPort.jpg | | + | | Port utilisé || [[Fichier:FaXServerJsPort.jpg | 200px]] |
|} | |} | ||
Version du 26 mars 2025 à 15:26
Sommaire
Auteur
Corto, stagiaire émérite du #TremplinNumérique6 vous présente la messagerie instanée FaX
Projet
Création d’une application de messagerie instantanée
Gestion du backend et de la base de données.
Objectifs
# Un challenge intéressant. # Nouveaux languages et nouvelles librairies. # Travail sous contrainte de temps et rendre un projet fonctionnel. # Ajouter un projet concret à mon portfolio et valoriser mes compétences.
Étapes de votre projet
Création d'un cahier des charges le plus complet possible comprenant : (lien Media:Cahier_des_charges_FaX.pdf)
- Les besoins du projet
- Un apperçu des objectifs
- Les étapes de réalisations
- Une description du site avec des captures d'écran
- Choix de la charte graphique (police d'écriture et couleurs)
- Une ébauche du design du site (faite avec Excalidraw)
- Une decription technique du site
- Un bugdet et un planning
- Un projet de maintenance de l'application
Construction de la page de discussion
- Création de plusieur boites (cf capture d'écran ->)
- Implémentation boite de texte pour les dialogues et bouton d'envoi.
- Test du système d'api pour me familiariser avec le format de fichier JSON (JavaScript Oriented Notation).
- Implémentation de JavaScript (fichier app.js) pour afficher message dans la zone de texte dédiée.
- Ajout d'évenement "si l'utilisateur appui sur la touche entrée, alors j'envoi mon message"
- Dans le JavaScript : Différenciation entre message envoyé et message reçu.
- Création de server.js (via node.js)
- Test de Node.js
- Test de Socket.io
- Modification du système d'évènement pour les messages reçu et les messages emis avec socket io.
- Création d'un JSON dans le JavaScript de app.js pour pouvoir envoyer les infos "pseudo" et "message"
- On modifie le css pour rendre le site "joli"
- Ajout d'une fonction autoscroll pour faire en sorte que le site défile vers le bas dès qu'un nouveau message arrive.
Post projet perso
Côté client | Côté serveur |
---|---|
![]() |
![]() |
- Ajout d'un système d'authentification utilisateur (Pseudo)
- Afficher le pseudo et l'heure d'envoi à côté des messages dans la fenêtre de discussion
- Ajout d'une base de donnée pour stocker les informations
(pour l'instant tout est dans le cache du navigateur,
des qu'on recharge la page toutes les infos sont éffacés) - Ajout d'une liste de discussion sur la gauche de la fenêtre de chat
- Ajout de la création de salon privés
- Ajout d'une page contact
- Ajout d'une page paramêtre pour changer le pseudo et l'image
Compétences
Noter ici les compétences dont vous avez eu besoin.
date
Du 17/03/2025 au 28/03/2025
Ressources
- IDE : VSCodium
- Schémas : Excalidraw
- Outil de création de présentation et diapos : Canva
- Gestion du server : Node.js
- Gestion des sockets de connections : Socket.io
- Votre présentation finale (celle que vous allez présenter au jury)
Aide technique
- Contact
- Introduction au HTML/CSS
- Css : Display flex
- Mooc sur le JavaScript OpenClassRoom Javascript
- Qu'est-ce qu'un fichier JSON ?
- Qu'est-ce qu'une API
- Tutoriel construction d'une application simple de messagerie instantantée Medium.com
- Tutoriel de socket.io (English) Socket.io
matériel et outils utilisés
Un pc et une connection internet !
Photos
Le code :