{"repo":"joebew42/ex_chat","free":true,"listed":false,"github":"https://github.com/joebew42/ex_chat","clone":"git clone https://github.com/joebew42/ex_chat.git","description":"A simple chat server written in Elixir as an example of Websocket usage","language":"Elixir","stars":23,"topics":["websockets","chat"],"license":null,"category":"chat-messaging","readme_excerpt":"ExChat This is a simple chat server built in Elixir with the goal to show a real life application of Websockets. Features roadmap - As a client I want to create a user so that I can use the chat system - As a user I can send a private message to an existing user to that I can talk directly without using an existing room Run tests Run application How to use the chat The web client will be available at http://localhost:4000/chat.html At the moment there are two users in the system. You can use two different URLs in order to get associated to them: - http://localhost:4000/chat.html?access token=foo token to enter as foo user - http://localhost:4000/chat.html?access token=bar token to enter as bar user Scratchpad DOING TODO See open issues for the full list of planned work. DONE - Try to decouple the WebSocketController from the Application Domain by introducing the Use Cases: - Extract a use case for SubscribeToUserSession - Extract a use case for JoinChatRoom - Extract a use case for CreateChatRoom - Extract a use case for SendMessageToChatRoom - Extract a use case for ValidateAccessToken - Should the WebSocketClient be renamed in WebSocketController ? - As a client I want to be associated to a user so that other clients can see who send messages - Prepare the system with some initial data: - foo user associated to the token foo token - bar user associated to the token bar token - Maybe the AuthenticationService is a \"Repository\" instead. Consider to rename it - Provide a real ","default_branch":null,"files":null,"tree":[],"storefront":"/r/joebew42","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/joebew42/ex_chat/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}