{"id":19513851,"url":"https://github.com/syssos/goact","last_synced_at":"2026-05-10T16:41:10.518Z","repository":{"id":45882422,"uuid":"383673571","full_name":"Syssos/goact","owner":"Syssos","description":"A Go based API and ReactJS chat component, giving developers a chat application project \"exoskeleton\".","archived":false,"fork":false,"pushed_at":"2022-11-01T01:13:10.000Z","size":4637,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-25T23:31:15.483Z","etag":null,"topics":["chat","golang","nodejs","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Syssos.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}},"created_at":"2021-07-07T04:32:52.000Z","updated_at":"2021-12-11T03:02:19.000Z","dependencies_parsed_at":"2023-01-20T18:19:07.210Z","dependency_job_id":null,"html_url":"https://github.com/Syssos/goact","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Syssos/goact","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syssos%2Fgoact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syssos%2Fgoact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syssos%2Fgoact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syssos%2Fgoact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Syssos","download_url":"https://codeload.github.com/Syssos/goact/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syssos%2Fgoact/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32864089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"ssl_error","status_checked_at":"2026-05-10T13:40:02.145Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["chat","golang","nodejs","websocket"],"created_at":"2024-11-10T23:33:21.282Z","updated_at":"2026-05-10T16:41:10.502Z","avatar_url":"https://github.com/Syssos.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goact ![travis-badge](https://app.travis-ci.com/Syssos/goact.svg?branch=main)\nGoact is a concurrency favoring Go/ReactJS project exoskeleton. This essentually means it is intended for being a way to generate a fast, efficient, and tested chat component, and be able to fully intergrate it into a current front end within minutes.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Syssos/goact/blob/main/GoactExample.png\" alt=\"goact example img\"/\u003e\n\u003c/p\u003e\n\n## Dependancies\n- [Go](https://golang.org/)\n\t* UUID Package ([google/uuid](https://github.com/google/uuid))v1.2.0\n\t* JWT Go ([dgrijalva/jwt-go](https://github.com/dgrijalva/jwt-go))v3.2.0\n\t* Websocket Package ([gorilla/websocket](https://github.com/gorilla/websocket))v1.4.2\n\t* Mux Router ([gorilla/mux](https://github.com/gorilla/mux))v1.8.0\n\t* CORS Router ([rs/cors](https://github.com/rs/cors))v1.8.0\n\n- [Node.js \u0026 npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n\t* [axios](https://www.npmjs.com/package/axios)\n\t* [node-sass](https://www.npmjs.com/package/node-sass)\n\n## Project Details\n### Current Features:\n\nCurrently this app will handle multiple users interacting within one chat room. The accounts are not managed by a database so any database desired to be used can be implemented fairly easily. Residing in the [.env](https://github.com/Syssos/goact/blob/main/backend/.env) file are 2 default accounts used for testing out the application and ensureing functionality is working.\n\nThe React front end will prompt the user to sign in before continuing to the component outlining the chat feature. The authentication is handled by signed JWT tokens, which are saved in the browser as a cookie. If a user does not have an authentically signed cookie when attempting to access to the websocket connection, they will get redirected to the signin page.\n\n\n## Running Locally\nTo get this project running local start by cloning this repository to a location on your local machine.\n\nThe Go Back end will need to be running at all times in order to have chat functionality. It is responsable for validating users, creating TCP/IP websocket connections, and tracking each chat room in a Go routine while any user is connected.\n\nThe Front end will optain a cookie string for the current user, this string will be valid for a predetermand amount of time and the browser uses it as a sort of key to tell the server the user is the person they claim to be. \n\nIn order for the project to run both the front and back end will need to be ran, these services will run on different ports and will both need to be started in their own termian session, or have one run in the background.\n\n\n### Terminal 1 (../goact/backend/)\n\n```bash\n$ go test ./...\n\nok      github.com/Syssos/goact\nok      github.com/Syssos/goact/models/chatroom\nok      github.com/Syssos/goact/routes\n\n$ go build .\n$ ./goact\nStarting server on localhost:8080\n\n```\n\n\u003e **Note:** This should run the 'go get' command for any needed package's that are not installed.\n\u003e Alternatively you can start the docker container.\n\u003e ```bash\n\u003e docker build -t backend .\n\u003e ```\n\u003e ```bash\n\u003e docker run -it -p 8080:8080 backend\n\u003e ```\n\n### Terminal 2 (../goact/frontend/)\nThe first thing we need to do to get our front end together is install any packages needed by this project. The package.json file will in this directory includeds all of the required dependancies meaning the npm install command can handle grabbing them for us.\n\n```bash\nnpm install\n```\n\nWith dependancies gathered, and the backend running, we can start our frontend and begin interacting with the app.\n\n```bash\nnpm start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyssos%2Fgoact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyssos%2Fgoact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyssos%2Fgoact/lists"}