{"id":15578132,"url":"https://github.com/brianlusina/quote-api","last_synced_at":"2025-04-24T01:10:45.834Z","repository":{"id":37969319,"uuid":"484842744","full_name":"BrianLusina/quote-api","owner":"BrianLusina","description":"Quote API","archived":false,"fork":false,"pushed_at":"2025-03-18T06:52:55.000Z","size":522,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T05:23:55.795Z","etag":null,"topics":["docker","go","golang","quotes","quotes-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrianLusina.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-23T19:50:54.000Z","updated_at":"2025-03-18T06:52:52.000Z","dependencies_parsed_at":"2023-02-10T01:30:35.037Z","dependency_job_id":"0567f835-0553-4fd2-9d8a-5f21c4bb7b18","html_url":"https://github.com/BrianLusina/quote-api","commit_stats":{"total_commits":160,"total_committers":3,"mean_commits":"53.333333333333336","dds":"0.39375000000000004","last_synced_commit":"6c60f376cd14d96a0fcf759c839dd81e9ae6285c"},"previous_names":[],"tags_count":7,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianLusina%2Fquote-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianLusina%2Fquote-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianLusina%2Fquote-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianLusina%2Fquote-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrianLusina","download_url":"https://codeload.github.com/BrianLusina/quote-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250540941,"owners_count":21447427,"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","go","golang","quotes","quotes-api"],"created_at":"2024-10-02T19:06:09.870Z","updated_at":"2025-04-24T01:10:45.817Z","avatar_url":"https://github.com/BrianLusina.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quote API\n\n[![License](https://img.shields.io/github/license/brianlusina/quote-api)](https://github.com/brianlusina/quote-api/blob/main/LICENSE)\n[![Version](https://img.shields.io/github/v/release/brianlusina/quote-api?color=%235351FB\u0026label=version)](https://github.com/brianlusina/quote-api/releases)\n[![Tests](https://github.com/BrianLusina/quote-api/actions/workflows/tests.yml/badge.svg)](https://github.com/BrianLusina/quote-api/actions/workflows/tests.yml)\n[![Lint](https://github.com/BrianLusina/quote-api/actions/workflows/lint.yml/badge.svg)](https://github.com/BrianLusina/quote-api/actions/workflows/lint.yml)\n[![Build](https://github.com/BrianLusina/quote-api/actions/workflows/build_app.yml/badge.svg)](https://github.com/BrianLusina/quote-api/actions/workflows/build_app.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/3c7f8e37c31646a5ae7b17cf1682551b)](https://www.codacy.com/gh/BrianLusina/quote-api/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=BrianLusina/quote-api\u0026amp;utm_campaign=Badge_Grade)\n[![codecov](https://codecov.io/gh/BrianLusina/quote-api/branch/main/graph/badge.svg?token=RNg0UoESug)](https://codecov.io/gh/BrianLusina/quote-api)\n[![Go](https://img.shields.io/badge/Go-1.18-blue.svg)](https://go.dev/)\n\nSimple API to fetch quotes and add quotes.\n\n## Requirements\n\nA couple of things that you will need to set up the API up and running.\n\n1. [Go](https://golang.org/doc/install)\n\n   You will need to install the Go 1.18 in order to run the application.\n\n2. [Docker](https://docker.com) and [Docker Compose](https://docs.docker.com/compose/install/)\n\n    You will need to install Docker \u0026 docker compose in order to run services the application uses.\n\n## Installation\n\nInstallation of dependencies can be done by running the following command:\n\n``` bash\nmake install\n```\n\n\u003e This install dependencies.\n\n## Running the application\n\nBefore running the application, first setup environment variables.\n\n``` bash\ncp .env.sample .env\n```\n\n\u003e sets up environment variables from .env.sample file. Set these environment variables approprately. The db configuration settings have been set to reasonable defaults.\n\nnow run the services specified in docker-compose.yml file.\n\n``` bash\ndocker-compose up\n```\n\nNow we can run the application with the following command:\n\n``` bash\nmake run\n# or\ngo run app/cmd/main.go\n```\n\n\u003e This will run the application on port 8080.\n\n## Testing the application\n\nTesting the application can be done by running the following command:\n\n``` bash\nmake test\n```\n\n\u003e Runs the tests.\n\nRunning test coverage can be done with:\n\n``` bash\nmake test-coverage\n```\n\n## Linting application\n\nApplicationg linting can be done by first setting up golangci-lint:\n\n``` bash\nmake setup-linting\n```\n\n\u003e This installs the [golangci-lint](https://github.com/golangci/golangci-lint) tool in the [bin directory](./bin).\n\nNow, linting can be run with the below command:\n\n``` bash\nmake lint\n```\n\n\u003e Runs linting.\n\nAdditionally, linting can be done on the [Dockerfile](./Dockerfile) with [hadolint](https://github.com/hadolint/hadolint).\n\n``` bash\nmake lint-docker\n```\n\n\u003e This will run linting on the Dockerfile.\n\nThis uses [Docker](https://docker.com) to run the linting.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianlusina%2Fquote-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianlusina%2Fquote-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianlusina%2Fquote-api/lists"}