{"id":28316300,"url":"https://github.com/arthur199212/product-feedback-app","last_synced_at":"2026-04-09T11:12:21.852Z","repository":{"id":52275398,"uuid":"515877775","full_name":"Arthur199212/product-feedback-app","owner":"Arthur199212","description":"Technologies: Go, gin, golang-migrate/migrate, JWT, PostgreSQL, Docker compose, logrus, Heroku, GitHub Actions, Swagger, websocket.","archived":false,"fork":false,"pushed_at":"2023-03-28T10:07:02.000Z","size":4229,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-01T11:54:19.537Z","etag":null,"topics":["cicd","docker-compose","gin","github-actions","go","go-migrate","go-mocking","golang","jwt","jwt-authentication","postgresql","rest-api","swagger","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/Arthur199212.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":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2022-07-20T07:26:22.000Z","updated_at":"2024-05-29T12:33:15.000Z","dependencies_parsed_at":"2023-02-09T06:46:04.504Z","dependency_job_id":null,"html_url":"https://github.com/Arthur199212/product-feedback-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Arthur199212/product-feedback-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arthur199212%2Fproduct-feedback-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arthur199212%2Fproduct-feedback-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arthur199212%2Fproduct-feedback-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arthur199212%2Fproduct-feedback-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arthur199212","download_url":"https://codeload.github.com/Arthur199212/product-feedback-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arthur199212%2Fproduct-feedback-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261542657,"owners_count":23174607,"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":["cicd","docker-compose","gin","github-actions","go","go-migrate","go-mocking","golang","jwt","jwt-authentication","postgresql","rest-api","swagger","websocket"],"created_at":"2025-05-25T02:11:17.927Z","updated_at":"2025-12-30T22:58:01.787Z","avatar_url":"https://github.com/Arthur199212.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Product Feedback App Backend\n\n[![CI](https://github.com/Arthur199212/product-feedback-app/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/Arthur199212/product-feedback-app/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/Arthur199212/product-feedback-app/branch/master/graph/badge.svg?token=KPT5HEGLCH)](https://codecov.io/gh/Arthur199212/product-feedback-app)\n\n## Technologies\n\n- [Go](https://go.dev/)\n- [Gin](https://github.com/gin-gonic/gin)\n- [golang-migrate/migrate](https://github.com/golang-migrate/migrate)\n- JWT\n- [PostgreSQL](https://www.postgresql.org/)\n- [logrus](https://github.com/sirupsen/logrus)\n- [Swagger](https://goswagger.io/)\n- Websocket with [gorilla/websocket](https://github.com/gorilla/websocket)\n- [golang/mock](https://github.com/golang/mock)\n\n## How to Start\n\n1. Run `make up` to spin up PostgreSQL DB with Docker compose.\n1. Install [golang-migrate/migrate](https://github.com/golang-migrate/migrate) and run `make migrate_up` to run migrations.\n1. Create `.env` file (see `.env.example` as an example).\n1. Run `make run` to start server.\n\n## Done\n\n- [x] Authentication with GitHub \u0026 JWT\n- [x] Create, Read operations with Users\n- [x] Create, Read, Update, Delete operations with Feedback\n- [x] Create, Read operations with Comments\n- [x] Create, Read, Delete a Votes\n- [x] Deployed (Heroku), [endpoint](https://go-product-feedback.herokuapp.com/)\n- [x] Add [Swagger documentation](https://go-product-feedback.herokuapp.com/docs)\n- [x] Setup CICD\n- [x] Use Websocket to notify users about updates of feedback, comments \u0026 votes\n\n## Todo\n\n- [ ] Add unit-tests\n- [ ] Add api-tests\n- [ ] Update, Delete operations with Comments\n- [ ] Update, Delete operations with Users\n\n## How to run locally\n\n1. Install Docker. Here is an example how it can be done for Windows [link](https://docs.docker.com/desktop/install/windows-install/)\n1. Verify that it's installed and workes `docker version`.\n1. Run `docker volume create product-feedback-db` to create a volume for PostgreSQL database to persist data.\n1. Verify that it's created `docker volume ls` (should be seen in the output).\n1. Add `.env` file to the root of the project. See `.env.example` for reference.\n1. Run `docker compose up -d` from the root of the project.\n1. App should start and be available on http://localhost:8000. Also, you may check Swagger documentation on http://localhost:8000/docs.\n1. Run `docker compose down` to clean up.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthur199212%2Fproduct-feedback-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthur199212%2Fproduct-feedback-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthur199212%2Fproduct-feedback-app/lists"}