{"id":26903490,"url":"https://github.com/camilaleniss/qr-generator","last_synced_at":"2026-04-16T10:31:58.128Z","repository":{"id":115637435,"uuid":"427232312","full_name":"camilaleniss/qr-generator","owner":"camilaleniss","description":"qr-generator-api deployed with Docker compose","archived":false,"fork":false,"pushed_at":"2021-11-17T21:03:45.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T05:23:27.715Z","etag":null,"topics":["docker","docker-compose","golang","mysql","reverse-proxy"],"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/camilaleniss.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-12T04:31:22.000Z","updated_at":"2022-11-15T18:39:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"29fcaffa-a017-4c44-87f4-979028de7368","html_url":"https://github.com/camilaleniss/qr-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/camilaleniss/qr-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camilaleniss%2Fqr-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camilaleniss%2Fqr-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camilaleniss%2Fqr-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camilaleniss%2Fqr-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camilaleniss","download_url":"https://codeload.github.com/camilaleniss/qr-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camilaleniss%2Fqr-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31882038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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-compose","golang","mysql","reverse-proxy"],"created_at":"2025-04-01T10:28:39.908Z","updated_at":"2026-04-16T10:31:58.093Z","avatar_url":"https://github.com/camilaleniss.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QR Code Generator\n\n\u003caside\u003e\n💡 María Camila Lenis Restrepo A00351598\n\n\u003c/aside\u003e\n\n# How to run the app?\n\n## Prerrequisites\n\n- Docker installed and running\n- Docker compose installed\n\n## Let's run this\n\n1. Clone this repository on your machine\n2. Go to the reverse-proxy folder and run `bash generate_keys.sh` . This will generate the pair of keys for the ssl certificate \n3. Get back to the root of the repository and build the app running `docker-compose build`\n4. Then upload the app and let this running with this command `docker-compose up`\n\n## Let's play with it\n\nOnce the app is running you can access to it with [`https://localhost/qrcodes`](https://localhost/qrcodes)\n\nThe purpose of the API is to convert a string into a Base64 QR code that you can paste in a [Base64 to Image Converter](https://codebeautify.org/base64-to-image-converter) to scan it. \n\nThis are the Endpoints that you can use to play \n\n### GET qrcodes → List all the QR codes in the system (limit 20)\n\n```json\n[\n  {\n    \"id\": \"1\",\n    \"text_value\": \"saved string \",\n    \"encoded_qr\": \"Base 64 QR Code\"\n  }\n]\n```\n\n### GET qrcodes/{id} →Gets a specific QR Code information\n\n```json\n{\n    \"id\": \"1\",\n    \"text_value\": \"saved string \",\n    \"encoded_qr\": \"Base 64 QR Code\"\n}\n```\n\n### POST qrcodes → Add a QR code to the system\n\nSend the body with a JSON like this\n\n```json\n{\n\t\"text_value\": \"The text that I want to convert to QR Code\"\n}\n```\n\nIt must returns this\n\n```json\n{\n  \"QR ID\": \"QRID\",\n  \"Status\": \"Created\"\n}\n```\n\n### PUT qrcodes/{id} → Updates the text_value and generate the Base 64 code\n\n```json\n{\n  \"ID\": \"QRID\",\n  \"Status\": \"Updated\"\n}\n```\n\n### DELETE qrcodes/{id} → Deletes an specific QR code\n\n```json\n{\n  \"ID\": \"QRID\",\n  \"Status\": \"Deleted\"\n}\n```\n\n### GET qrcodes/health → View the general state of the app\n\n```json\n{\n  \"BD Connection\": \"Running\",\n  \"QR Codes Saved\": \"1\"\n}\n```\n\n# How the app is build?\n\nThis is an app to generate and manage QR codes from a text. The API is build in Golang and it's connected to a MySQL database. With the run of the Docker Compose the application will upload the following architecture:\n\n![docker (1).png](assets/docker_(1).png)\n\nWhere you can see there are three Docker containers: One that works as a reverse proxy, the API container and the database. \n\n## Docker Images\n\n[For the reverse proxy](https://hub.docker.com/r/camilaleniss/proxy)\n\n[For the API](https://hub.docker.com/r/camilaleniss/web)\n\n[For the Database](https://hub.docker.com/r/camilaleniss/mysql)\n\nYou can see the Dockerfile inside each folder in this repo. \n\n# Next steps\n\n## Production deploy\n\n- To run this service in a production environment, we must deploy the containers in a Cloud service. We could use a service like AWS ECS to run Docker containers.\n- To be able to connect with the service, the container nginx container must have a public IP.  To access to it easier, we could use a DNS service to give it a domain name.\n\n## Improvements\n\n- Include a bash script that makes the build and deploy of the app, including functional tests\n- Makefile with those phases\n- Refactor of the code app\n- Include replicas with Docker swarm to make it more reliable\n- Environment variables","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamilaleniss%2Fqr-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamilaleniss%2Fqr-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamilaleniss%2Fqr-generator/lists"}