uN4sh/Dylchat

End-to-end encrypted web chat app.

★ 4Forks 3JavaScriptGitHub ↗Compare
chat-applicationend-to-end-encryptionnodejs

README

Dylchat

SchoolProject Javascript Socket

Web app de messagerie instantée chiffrée de bout en bout disponible sur 🔗 dylchat.fr.

Conversation de groupe, chiffrement end-to-end, messages privés et gestion du compte.

Lancement du serveur

  • Installer Mongo (Linux Ubuntu) :

    sudo apt get install mongo
    # Vérifier que tout fonctionne 
    mongo
    > show dbs
  • À la racine du projet :

    • npm init -y

    • npm install cors mongoose express jsonwebtoken dotenv bcryptjs cookie-parser ws socket.io crypto-js

    • npm install nodemon -D

    • Modifier les scripts du fichier package.json comme suit :

      "scripts": {
        "start": "node index.js",
        "dev": "nodemon index.js",
        "test": "echo \"Error: no test specified\" && exit 1"
      }
    • Créer un fichier .env avec les valeurs suivantes :

      API_PORT=8000
      API_HOST=localhost
      SSL=false
      
      MONGO_URI= mongodb://localhost:27017/dylchat
      
      TOKEN_KEY=random_string
  • Taper npm run dev pour lancer le serveur (index.js)

  • Le script s'actualise automatiquement avec nodemon à chaque modification de fichier

  • Les messages "Listening on http://localhost:8000" et "Successfully connected to database" confirment le bon lancement du serveur

Auteurs

🚧 Axes d'amélioration

Côté serveur

  • Améliorer la gestion des statuts En ligne / Hors ligne des utilisateurs
  • Gérer le cas de la double connexion pour un même utilisateur
  • Modifier la façon de récupérer les messages d'un chat (pour gérer un + grand nombre de données)
    • Requète pour fetch les 50 derniers messages pour les afficher
    • Si l'utilisateur remonte son chat, la scrollbar se bloque le temps de fetch les 50 prochains messages

Côté client

  • Script getMessages(idchat) pour un GET API sur /getAllMessages avec l'IdChat en body de requète
  • selectContact(): clear le tableau messagesArray et appeler getMessages(idchat) pour le re-remplir
  • Ajouter une icône pour le statut En ligne des contacts et les conversations chiffrées
  • Bouton option en haut à droite du contact (?)
  • Ajouter un bouton pour supprimer un message ou une conversation (?)

Contributors

uN4shuvsq21802951elo0501Dyl-LAN741

Issues