{"id":28232636,"url":"https://github.com/cyril-develop/chat-app","last_synced_at":"2026-01-20T16:34:06.605Z","repository":{"id":276781449,"uuid":"798184642","full_name":"Cyril-Develop/chat-app","owner":"Cyril-Develop","description":"Application de chat en temps réel.","archived":false,"fork":false,"pushed_at":"2025-05-18T17:16:52.000Z","size":11169,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T10:27:33.561Z","etag":null,"topics":["api-rest","app","application","chat","chat-application","react","reactjs","realtime","realtime-chat","socket","socket-io","socketio","zustand"],"latest_commit_sha":null,"homepage":"https://cyril-develop.fr/chat-app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cyril-Develop.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-09T09:06:29.000Z","updated_at":"2025-05-18T17:16:56.000Z","dependencies_parsed_at":"2025-03-25T13:29:40.386Z","dependency_job_id":"c89c6edf-502a-4424-86f5-d6b4eb8422b0","html_url":"https://github.com/Cyril-Develop/chat-app","commit_stats":null,"previous_names":["cyril-develop/chateo","cyril-develop/chateo-portfolio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cyril-Develop/chat-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyril-Develop%2Fchat-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyril-Develop%2Fchat-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyril-Develop%2Fchat-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyril-Develop%2Fchat-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cyril-Develop","download_url":"https://codeload.github.com/Cyril-Develop/chat-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyril-Develop%2Fchat-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265622715,"owners_count":23800027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","app","application","chat","chat-application","react","reactjs","realtime","realtime-chat","socket","socket-io","socketio","zustand"],"created_at":"2025-05-18T20:09:38.849Z","updated_at":"2026-01-20T16:34:06.596Z","avatar_url":"https://github.com/Cyril-Develop.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chat'App est une application de chat en temps réel.\n\n![homepage](/client/public/screenshot/home.webp)\n![chat](/client/public/screenshot/chat.webp)\n![settings](/client/public/screenshot/settings.webp)\n\n## 🚀 Technologies utilisées :\n\nFrontend :\n\n- ⚛️ React – Interface utilisateur\n- 🎨 ShadCN – Composants UI\n- 💨 Tailwind CSS / SASS – Styles\n\nBackend :\n\n- 🟢 Node.js / Express – API REST et gestion des requêtes\n- 🔌 Socket.io – Communication en temps réel\n\nBase de données :\n\n- 🛢️ Prisma / MySQL – Gestion et requêtes SQL\n\n## 📥 Installation\n\n### Cloner le projet :\n\n```terminal\ngit clone https://github.com/Cyril-Develop/chat-app.git .\n```\n\n### Créer le dossier des images :\n\nDans le dossier `api`, créez un dossier `images/message` pour stocker les fichiers envoyés.\n\n### Installation des dépendances :\n\nOuvrez un terminal pour chaque dossier (api, client, socket) et exécutez :\n\n```terminal\nnpm install\n```\n\n### Configuration de la base de données :\n\n### Vérifier MySQL\n\nAssurez-vous que MySQL est installé et en cours d'exécution.\n\n### Créer la base de données :\n\nConnectez-vous à MySQL et exécutez :\n\n```sql\nCREATE DATABASE \u003cnom_de_la_base_de_données\u003e;\n```\n\n### Configurer Prisma :\n\nDans le dossier `api`, initialisez Prisma :\n\n```terminal\nnpx prisma init\n```\n\nDans le fichier `api/.env`, ajoutez l'URL de connexion :\n\n```env\nDATABASE_URL=\"mysql://\u003cuser\u003e:\u003cpassword\u003e@localhost:3306/\u003cdatabase\u003e\"\n```\n\n### Appliquer les migrations :\n\nCréez les tables en exécutant :\n\n```terminal\nnpx prisma migrate dev --name init\n```\n\n### Générer le client Prisma :\n\nUne fois la migration terminée, générez le client Prisma :\n\n```terminal\nnpx prisma generate\n```\n\n### Variables d'environnement :\n\nCréez un fichier `.env` dans les dossiers `client` et `socket` puis modifiez celui de `api` comme suit :\n\n```env\n### api/.env\n\nDATABASE_URL=\"mysql://\u003cuser\u003e:\u003cpassword\u003e@localhost:3306/\u003cdatabase\u003e\"\nPORT=\"35000\"\nJWT_SECRET=\"g16er1fFE\"\n\n### client/.env\n\nVITE_REACT_APP_BASE_URL=\"http://localhost:35000\"\nVITE_REACT_APP_IMAGE_URL=\"http://localhost:35000/images/\"\nVITE_REACT_APP_SOCKET_URL=\"http://localhost:30000\"\n\n### socket/.env\n\nCLIENT_URL=\"http://localhost:5173\"\nSOCKET_PORT=\"30000\"\n```\n\n### Démarrer les serveurs\n\nDans chaque dossier (api, client, socket), ouvrez un terminal et exécutez :\n\nBackend (API Express) :\n\n```terminal\ncd api \u0026\u0026 npm start\n```\n\nFrontend (React) :\n\n```terminal\ncd client \u0026\u0026 npm start\n```\n\nSocket.io (serveur WebSocket) :\n\n```terminal\ncd socket \u0026\u0026 npm start\n```\n\n## Fonctionnalités :\n\n- Authentification – Créer un compte utilisateur, se connecter et se déconnecter\n- Salons de discussion – Créer, rejoindre et gérer des salons publics ou privés\n- Messagerie – Envoyer des messages (texte, image) en groupe ou en privé\n- Chat en temps réel – textuel et/ou vocal\n- Amis – Rechercher, ajouter, bloquer et supprimer des amis\n- Statuts en temps réel – Voir qui est en ligne et suivre les changements de statut\n- Mise à jour du profil – Modifier photo de profil, nom d'utilisateur et email\n- Interface responsive – Adaptée aux mobiles et tablettes\n- Notifications – Recevoir des alertes pour les nouveaux messages et les demandes d'amis (temps réel, hors ligne)\n- Mode espion\n- Dark mode\n\n## 🎮 Tester le projet en ligne\n\n🚀 [Démo chat-app](https://cyril-develop.fr/chat-app)\n\n![GitHub repo size](https://img.shields.io/github/repo-size/Cyril-Develop/chat-app?style=for-the-badge)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyril-develop%2Fchat-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyril-develop%2Fchat-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyril-develop%2Fchat-app/lists"}