{"id":24569564,"url":"https://github.com/mtbassi/short-link","last_synced_at":"2026-04-17T12:33:09.233Z","repository":{"id":225941049,"uuid":"767264511","full_name":"mtbassi/short-link","owner":"mtbassi","description":"Link shortener that allows you to generate a shortened link for quick sharing and use it for 24 hours. After this period, the link is automatically deleted.","archived":false,"fork":false,"pushed_at":"2024-03-25T02:45:35.000Z","size":122,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T22:07:31.777Z","etag":null,"topics":["java","jpa","lombok","mockito","mysql","rest-api","spring-boot","zxing"],"latest_commit_sha":null,"homepage":"","language":"Java","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/mtbassi.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":"2024-03-05T01:23:06.000Z","updated_at":"2024-03-21T03:27:45.000Z","dependencies_parsed_at":"2024-03-25T03:44:22.717Z","dependency_job_id":null,"html_url":"https://github.com/mtbassi/short-link","commit_stats":null,"previous_names":["mtbassi/short-link"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mtbassi/short-link","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbassi%2Fshort-link","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbassi%2Fshort-link/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbassi%2Fshort-link/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbassi%2Fshort-link/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtbassi","download_url":"https://codeload.github.com/mtbassi/short-link/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtbassi%2Fshort-link/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31929704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T10:35:34.458Z","status":"ssl_error","status_checked_at":"2026-04-17T10:35:09.472Z","response_time":62,"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":["java","jpa","lombok","mockito","mysql","rest-api","spring-boot","zxing"],"created_at":"2025-01-23T15:54:59.328Z","updated_at":"2026-04-17T12:33:09.217Z","avatar_url":"https://github.com/mtbassi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Short Link\n![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)\n![Spring](https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge\u0026logo=spring\u0026logoColor=white)\n![MySQL](https://img.shields.io/badge/MySQL-%23ED8B00.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white\u0026color=%233d6ab2)\n[![Licence](https://img.shields.io/github/license/Ileriayo/markdown-badges?style=for-the-badge)](./LICENSE)\n\nThis link shortening service allows you to generate a shortened link for quick sharing and also offers the functionality to generate a QR code containing the original link. So, in addition to sharing the link directly, you can also provide the QR code for scanning. It's important to note that the QR code does not expire, while the shortened link is valid for 24 hours. After this period, the link is automatically removed to ensure the security and privacy of users.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [API Endpoints](#api-endpoints)\n- [Contributing](#contributing)\n\n## Installation\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/mtbassi/short-link.git\n```\n\n2. Install dependencies with Maven\n\n3. Create a configuration with your runtime environment variables with your Data Base Credentials that are used in `application.properties`\n\n```properties\n# Database settings\nspring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/${DATABASE_NAME}\nspring.datasource.driverClassName=com.mysql.cj.jdbc.Driver\nspring.datasource.username=${MYSQL_USERNAME}\nspring.datasource.password=${MYSQL_PASSWORD}\n\n# Hibernate settings\nspring.jpa.hibernate.ddl-auto=update\nspring.jpa.properties.hibernate.show_sql=false\nspring.jpa.properties.hibernate.format_sql=true\nspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect\n\n# Database initialization\nspring.sql.init.mode=always\nspring.sql.init.username=${MYSQL_USERNAME}\nspring.sql.init.password=${MYSQL_PASSWORD}\n```\n\n4. Configurations values\n\n```properties\nDATABASE_NAME=VALUE;MYSQL_USERNAME=VALUE2;MYSQL_PASSWORD=VALUE3;\n```\n\n## Database\nThe project utilizes [MySQL](https://www.mysql.com/) as the database.\n\n## Usage\n\n1. Start the application with Maven\n\n2. The API will be accessible at http://localhost:8080/shortlink\n\n3. The Swagger will be accessible at http://localhost:8080/swagger-ui/index.html#/\n\n## API Endpoints\nThe API provides the following endpoints:\n\n**Short Link**\n```markdown\n# 1. Shorten link\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"original_link\": \"https://example.com\"}' http://localhost:8080/shortlink\n\n# 2. Short link and generate QR code.\ncurl 'http://localhost:8080/shortlink/qr-code?original_link=https://example.com' --output qr_code.png\n\n# 3. Redirect to original link\ncurl -L http://localhost:8080/shortlink/yourShortenedLink\n\n# 4. Get information about a shortened link\ncurl http://localhost:8080/shortlink/info/yourShortenedLink\n```\n\n## Contributing\n\nContributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request to the repository.\n\nWhen contributing to this project, please follow the existing code style, [commit conventions](https://www.conventionalcommits.org/en/v1.0.0/), and submit your changes in a separate branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtbassi%2Fshort-link","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtbassi%2Fshort-link","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtbassi%2Fshort-link/lists"}