{"id":22696910,"url":"https://github.com/maxbeizer/nodevember_chat","last_synced_at":"2025-07-15T07:40:58.939Z","repository":{"id":143122420,"uuid":"45648681","full_name":"maxbeizer/nodevember_chat","owner":"maxbeizer","description":"An example chat application for Nodevember","archived":false,"fork":false,"pushed_at":"2016-08-16T22:55:48.000Z","size":1224,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T21:09:20.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nodevemberchat.herokuapp.com/","language":"Elixir","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/maxbeizer.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}},"created_at":"2015-11-06T00:24:34.000Z","updated_at":"2015-12-09T05:28:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff7d9fab-3ae7-42d0-85e9-f2cf0fc0f00b","html_url":"https://github.com/maxbeizer/nodevember_chat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbeizer%2Fnodevember_chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbeizer%2Fnodevember_chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbeizer%2Fnodevember_chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbeizer%2Fnodevember_chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxbeizer","download_url":"https://codeload.github.com/maxbeizer/nodevember_chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246224401,"owners_count":20743371,"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":[],"created_at":"2024-12-10T05:11:34.744Z","updated_at":"2025-03-29T18:22:21.869Z","avatar_url":"https://github.com/maxbeizer.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NodevemberChat\n\n## Requirements\n* [Elixir](http://elixir-lang.org/install.html)\n  * [Erlang](https://www.erlang-solutions.com/downloads/download-erlang-otp)\n* [Phoenix](http://www.phoenixframework.org/docs/installation)\n* [Node](https://nodejs.org/en/download/)\n\n## Steps\n### Part I\n```\n$ mix phoenix.new nodevember_chat --no-ecto\n$ iex -S mix phoenix.server\n```\n\n### Part II\nUncomment channel macro in `web/channels/user_socket.ex` to send \"rooms:*\"\nmessages to the RoomChannel.\n\n### Part III\nAdd RoomChannel to `web/channels` and define a the join function\n```elixir\ndefmodule NodevemberChat.RoomChannel do\n  use Phoenix.Channel\n\n  def join(\"rooms:lobby\", _message, socket) do\n    {:ok, socket}\n  end\nend\n```\n\n### Part IV\nEnsure that socket.js gets loaded and tell the socket to join the \"rooms:lobby\"\nchannel/topic. Note the live code reloading and the join log in the console.\n\n### Part V\nAdd jQuery and markup for chat. Add JS to push to channel and receive events\nfrom channel.\n\n### Part VI\nAdd the `handle_in` function in the RoomChannel to broadcast message to clients.\nAlso add the `handle_out` function for fun.\n\nYou could also broadcast to the chat from Iex via the Endpoint:\n```elixir\nNodevemberChat.Endpoint.broadcast! \"rooms:lobby\", \"new_msg\", %{body: \"from Iex\"}\n```\n\n### Part VII\nAdd the ` secret_key_base: System.get_env(\"SECRET_KEY_BASE\")` to\n`config/prod.exs` and remove call to the `config/prod.secret.exs` call at the\nbottom of that file.\n\n```\n$ heroku apps:create nodevemberchat --buildpack https://github.com/hashnuke/heroku-buildpack-elixir\n$ heroku buildpacks:add https://github.com/gjaldon/heroku-buildpack-phoenix-static.git\n$ heroku config:set SECRET_KEY_BASE=somesecretkey\n$ git push heroku master\n$ herok apps:open\n```\n\n---\n\nTo start your Phoenix app:\n\n  1. Install dependencies with `mix deps.get`\n  2. Start Phoenix endpoint with `mix phoenix.server`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n\nReady to run in production? Please [check our deployment guides](http://www.phoenixframework.org/docs/deployment).\n\n## Learn more\n\n  * Official website: http://www.phoenixframework.org/\n  * Guides: http://phoenixframework.org/docs/overview\n  * Docs: http://hexdocs.pm/phoenix\n  * Mailing list: http://groups.google.com/group/phoenix-talk\n  * Source: https://github.com/phoenixframework/phoenix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbeizer%2Fnodevember_chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxbeizer%2Fnodevember_chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbeizer%2Fnodevember_chat/lists"}