{"id":15662509,"url":"https://github.com/pradumnasaraf/contributors","last_synced_at":"2026-03-02T20:33:06.572Z","repository":{"id":104243919,"uuid":"601178760","full_name":"Pradumnasaraf/Contributors","owner":"Pradumnasaraf","description":"Contributors is a GraphQL API written in Go. It stores data in MongoDB and uses Redis to cache and rate-limit requests. For monitoring, it uses Prometheus (Custom Metrics) and Grafana.","archived":false,"fork":false,"pushed_at":"2024-12-04T17:09:57.000Z","size":135,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T16:05:07.602Z","etag":null,"topics":["docker","docker-images","gin","go","golang","grafana","graphql","hacktoberfest","kubernetes","mongodb","prometheus","rate-limit","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pradumnasaraf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["eddiejaoude"]}},"created_at":"2023-02-13T14:31:37.000Z","updated_at":"2025-01-02T13:15:05.000Z","dependencies_parsed_at":"2024-01-18T09:06:25.648Z","dependency_job_id":"c6ef5d1c-71c0-45cd-8307-c900d0c8a420","html_url":"https://github.com/Pradumnasaraf/Contributors","commit_stats":null,"previous_names":["pradumnasaraf/go-api"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/Pradumnasaraf/Contributors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FContributors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FContributors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FContributors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FContributors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pradumnasaraf","download_url":"https://codeload.github.com/Pradumnasaraf/Contributors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FContributors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30018580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T17:00:27.440Z","status":"ssl_error","status_checked_at":"2026-03-02T17:00:03.402Z","response_time":60,"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":["docker","docker-images","gin","go","golang","grafana","graphql","hacktoberfest","kubernetes","mongodb","prometheus","rate-limit","redis"],"created_at":"2024-10-03T13:33:03.528Z","updated_at":"2026-03-02T20:33:06.551Z","avatar_url":"https://github.com/Pradumnasaraf.png","language":"Go","funding_links":["https://github.com/sponsors/eddiejaoude"],"categories":[],"sub_categories":[],"readme":"## Contributors\n\n**Contributors** is a GraphQL API written in Go. It stores data in MongoDB and uses Redis to cache and rate-limit requests. For monitoring, it integrates with Prometheus (Custom Metrics) and Grafana. The purpose of this API is to store open-source contributors and their contributions to various projects.\n\nhttps://github.com/user-attachments/assets/49bb79f6-5d63-4ab5-b7b3-92b9bcb783db\n\n## Using and Developing\n\n### Local Development\n\n#### Prerequisites\n\nTo run the project locally, ensure you have the following installed:\n\n- [Golang](https://golang.org/)\n- [MongoDB](https://www.mongodb.com/)\n- [Redis](https://redis.io/)\n- [Prometheus and Grafana](https://prometheus.io/docs/visualization/grafana/) (Only if you need monitoring)\n\n\u003e **Note:**  \n\u003e Redis, Prometheus, and Grafana can be run using Docker. It's not feasible to run some services in Docker and others locally. For consistency, it is recommended to use Docker Compose to run all services.\n\n#### Steps for Local Setup\n\n1. Copy the `.env.example` file to `.env` and update the values with your own configuration. Use the following bash command:\n   ```bash\n   cp .env.example .env\n   ```\n\n2. Install dependencies and start the server:\n   ```bash\n   go mod download\n   go run main.go\n   ```\n\n3. Access the API at `http://localhost:8080/`.\n\n### Docker Compose\n\n#### Prerequisites\n\nMake sure you have the following installed:\n\n- [Docker](https://www.docker.com/)\n- [Docker Compose](https://docs.docker.com/compose/) (Docker Compose is included with Docker Desktop)\n\n#### Steps for Docker Compose Setup\n\n1. Run the following command to start the services, including MongoDB, the Go API, Prometheus, and Grafana:\n   ```bash\n   docker compose up\n   ```\n\n2. If you're using the latest version of Docker Compose, you can leverage the Compose Watch feature. This will automatically rebuild the application when code changes are made:\n   ```bash\n   docker compose up --watch\n   docker compose up --build --watch\n   ```\n\n3. You can now access the following:\n   - API: `http://localhost:8080/`\n   - Prometheus: `http://localhost:9090/`\n   - Grafana: `http://localhost:3000/`\n\n## Using the API\n\nYou can interact with the API using the **GraphQL Playground**, which will be available at `http://localhost:8080/` when running locally. Alternatively, you can interact with the API via the `/query` endpoint.\n\nAll **Query** and **Mutation** operations are defined in the [operations.md](operations.md) file.\n\nIf you are using Grafana, you can import the pre-built dashboard from the `grafana` directory.\n\n## License\n\nThis project is licensed under the [GNU General Public License v3.0](LICENSE).\n\n## Security\n\nIf you discover a security vulnerability within this project, please refer to the [security policy](SECURITY.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradumnasaraf%2Fcontributors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpradumnasaraf%2Fcontributors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradumnasaraf%2Fcontributors/lists"}