{"id":28237213,"url":"https://github.com/43-stuti/friends-chat-client","last_synced_at":"2026-04-25T21:32:10.450Z","repository":{"id":95096071,"uuid":"331467483","full_name":"43-stuti/friends-chat-client","owner":"43-stuti","description":"A group chat application where your words get twisted by a machine learning model trained on dialogues from a TV show(for now friends) characters before your friends receive your message","archived":false,"fork":false,"pushed_at":"2021-01-21T19:06:36.000Z","size":3422,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T15:40:23.481Z","etag":null,"topics":["runway","socket-io","vuejs"],"latest_commit_sha":null,"homepage":"https://goofy-panini-b0b245.netlify.app","language":"Vue","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/43-stuti.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":"2021-01-21T00:14:57.000Z","updated_at":"2021-01-21T19:06:38.000Z","dependencies_parsed_at":"2023-03-04T07:15:55.262Z","dependency_job_id":null,"html_url":"https://github.com/43-stuti/friends-chat-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/43-stuti/friends-chat-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43-stuti%2Ffriends-chat-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43-stuti%2Ffriends-chat-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43-stuti%2Ffriends-chat-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43-stuti%2Ffriends-chat-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/43-stuti","download_url":"https://codeload.github.com/43-stuti/friends-chat-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43-stuti%2Ffriends-chat-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["runway","socket-io","vuejs"],"created_at":"2025-05-19T00:17:51.648Z","updated_at":"2026-04-25T21:32:10.445Z","avatar_url":"https://github.com/43-stuti.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The one where you are one of them\n### Overview\n\nThe idea for this project was to create a chat application where you have your words twisted by a famous TV show character. It would be fun to lose control of how your words get delived to people. \nHave your words twisted and take the group conversation in a completely unanticipated direction.\n\nI started off with basing the chats on a more \"friends\" show style conversation. Because ofcourse 10 seasons weren't enough.\nI scraped the friends transcripts from [here](https://fangj.github.io/friends/) using cheerio. \nAnd trained a new model on RunwayML on those transcripts. \n\nGoing futher, I do plan to replicate the same experience with other shows too. Where the users can choose which kind of conversation they would like to be a part of.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/12654691/105268597-89186f00-5b60-11eb-8a62-880db25d3096.png\" width=\"600px\" height=\"300px\"\u003e\n\u003cpre\u003e\n      Try out the chat \u003ca href=\"https://goofy-panini-b0b245.netlify.app\"\u003e here \u003c/a\u003e\n\u003c/pre\u003e\n- Set a topic for the chat and invite your friends by sharing the link\n\n##### It works something like this. \n      Eg: I gave it a prompt of Joey saying \"I am not feeling well today.\"\n\u003cimg src=\"https://user-images.githubusercontent.com/12654691/105054311-d94be000-5a3f-11eb-934f-970524f90dea.png\"\u003e\u003c/img\u003e\nOnce I hosted the model, I could communicate with it via it's REST API. \n\n### How it works \n- The person initiating the chat sets the topic for the chat eg: \"The one where __________\"\n- The host then invites other friends using the link. \n- They all land on a screen where they are asked to choose the character which would twist their words and also enter their own name. \n- Let the twisted chat begin. \n\nBehind the scenes \n- If a user called \"Mary\" has picked \"Monica\" all her texts will be redone by monica. \n- Before sending the prompt to runway the server replaces all the personal names with the respective character names.\nEg: If another user Tom picked Joey\n\"Mary: I hate Tom and Tom's cat\" becomes \"Monica: I hate Joey and Joey's cat\" where Tom has picked Joey. \n- The response from runway is modified in the opposite way. ie replacing character names with the respective users before it gets sents to all the clients. \neg:  \"Monica: I hate Joey and Joey's cat\" becomes \"Mary: I hate Tom and Tom's cat\" becomes\n    \n### Making the chat application \n    - The server for the app is made using NodeJS and SocketIO\n    - The client is made on VueJS and the routing is handled by vue-router\n#### The chatrooms \nThe server maintains a reference to all chat rooms. \nA Chatroom has the following structure \n\u003cpre\u003e\n|-- Topic\n|-- Messages\n|     |- [{\n|           user:'Tom',\n|           character:'Joey',\n|           message:'Hi'\n|         }]\n|- onlineUsers\n|     |- [{\n|           socket:\n|           user:'Tom',\n|           character:'Joey'\n|         }]\n\u003c/pre\u003e\nIt communicates with the sockets and runway\n\n\n## Project setup\n```\nnpm install\n```\n\n### Compiles and hot-reloads for development\n```\nnpm run serve\n```\n\n### Compiles and minifies for production\n```\nnpm run build\n```\n\n### Lints and fixes files\n```\nnpm run lint\n```\n\n### Customize configuration\nSee [Configuration Reference](https://cli.vuejs.org/config/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F43-stuti%2Ffriends-chat-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F43-stuti%2Ffriends-chat-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F43-stuti%2Ffriends-chat-client/lists"}