{"id":23278467,"url":"https://github.com/andrew-boutin/go-chat","last_synced_at":"2026-04-11T13:06:05.976Z","repository":{"id":82226310,"uuid":"122369829","full_name":"andrew-boutin/go-chat","owner":"andrew-boutin","description":"Golang chat application with Google authentication.","archived":false,"fork":false,"pushed_at":"2019-02-06T20:08:38.000Z","size":234,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T18:31:22.441Z","etag":null,"topics":["docker","docker-compose","gin","go","google-api","makefile","redis"],"latest_commit_sha":null,"homepage":"https://andrewboutin.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrew-boutin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-02-21T17:34:46.000Z","updated_at":"2023-10-01T10:17:03.000Z","dependencies_parsed_at":"2023-04-25T12:47:36.896Z","dependency_job_id":null,"html_url":"https://github.com/andrew-boutin/go-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/andrew-boutin%2Fgo-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-boutin%2Fgo-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-boutin%2Fgo-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-boutin%2Fgo-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrew-boutin","download_url":"https://codeload.github.com/andrew-boutin/go-chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247485279,"owners_count":20946397,"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":["docker","docker-compose","gin","go","google-api","makefile","redis"],"created_at":"2024-12-19T22:31:39.740Z","updated_at":"2025-12-30T23:06:25.685Z","avatar_url":"https://github.com/andrew-boutin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Chat\n\nA chat app written in Go with Google authentication. Chat with other users. This project was primarily for learning Go and brushing up on things such as Redis and Docker.\n\n![Go Chat In Action](docs/chat.gif)\n\n## Run\n\nPre-requisites: Install `docker`, and follow *One Time Set Up* below.\n\n    make\n\n`Go` chat on `localhost:8080`.\n\n## One Time Set Up\n\nCreate a Google application in [Google Developer Console](https://console.developers.google.com). Then, create a Client ID and Client Secret.\n\nCreate `creds.json` with properties `cid` and `csecret`. These should contain your Client ID and Client Secret values. This enables Google authentication.\n\n## Technology\n\n- Uses [Redis](https://redis.io/) as a store for connection and user info.\n- [Gin](https://github.com/gin-gonic/gin) and [Gin Sessions](https://github.com/gin-contrib/sessions) are used for middleware and session management which is tied into the Redis store.\n- [Google OAuth API](https://developers.google.com/identity/protocols/OAuth2) integrations allow a user to login through Google so that go-chat can access their basic userinfo.\n- [Glide](https://github.com/Masterminds/glide) is used for dependency management.\n\n## References\n\n- [Go Chat App](https://scotch.io/bar-talk/build-a-realtime-chat-server-with-go-and-websockets) for Gorilla WebSocket info.\n- [Ramblings of a Build Engineer](https://skarlso.github.io/2016/06/12/google-signin-with-go/) was used as a guide for this.\n\n---\n\nCheck out my [personal site](https://andrewboutin.com)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrew-boutin%2Fgo-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrew-boutin%2Fgo-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrew-boutin%2Fgo-chat/lists"}