{"id":19315249,"url":"https://github.com/furkancelikk/url-shortener","last_synced_at":"2026-04-04T22:33:46.403Z","repository":{"id":259736699,"uuid":"875308457","full_name":"furkancelikk/url-shortener","owner":"furkancelikk","description":"URL Shortener","archived":false,"fork":false,"pushed_at":"2024-11-08T17:15:36.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-03T14:26:57.950Z","etag":null,"topics":["docker-compose","dockerfile","exception-handling","java","javadoc","maven","mysql","spring-boot","unit-test","url-shortener"],"latest_commit_sha":null,"homepage":"","language":"Java","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/furkancelikk.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-19T16:28:33.000Z","updated_at":"2024-12-25T16:11:14.000Z","dependencies_parsed_at":"2024-10-27T17:58:29.557Z","dependency_job_id":"ac67d2ec-6952-4c5e-941a-a2f4d009393b","html_url":"https://github.com/furkancelikk/url-shortener","commit_stats":null,"previous_names":["furkancelikk/url-shortener"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/furkancelikk/url-shortener","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkancelikk%2Furl-shortener","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkancelikk%2Furl-shortener/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkancelikk%2Furl-shortener/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkancelikk%2Furl-shortener/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furkancelikk","download_url":"https://codeload.github.com/furkancelikk/url-shortener/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkancelikk%2Furl-shortener/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: 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-compose","dockerfile","exception-handling","java","javadoc","maven","mysql","spring-boot","unit-test","url-shortener"],"created_at":"2024-11-10T01:05:35.072Z","updated_at":"2026-04-04T22:33:46.379Z","avatar_url":"https://github.com/furkancelikk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URL Shortener\n\n---\n\n\u003cdetails open\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n* [About The Project](#about-the-project)\n* [Built With](#built-with)\n* [Installation](#installation)\n    * [Set up with Java](#set-up-with-java)\n    * [Set up with Docker](#setup-with-docker)\n\u003c/details\u003e\n\n---\n\n## About The Project\n\nThis project is a URL shortening application designed to make users'long URLs shorter and easier to remember.\nUsers can save their URLs along with an optional code. If a user does not provide a code,\nthe system will automatically generate a unique code.\nUsers can view these URLs using the saved code or access them directly.\n\n---\n\n## Built With\n\nThe following technologies, tools etc. have been used in this project:\n\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/117201156-9a724800-adec-11eb-9a9d-3cd0f67da4bc.png\" alt=\"Java\" title=\"Java\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/183891303-41f257f8-6b3d-487c-aa56-c497b880d0fb.png\" alt=\"Spring Boot\" title=\"Spring Boot\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/183896128-ec99105a-ec1a-4d85-b08b-1aa1620b2046.png\" alt=\"MySQL\" title=\"MySQL\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/117207330-263ba280-adf4-11eb-9b97-0ac5b40bc3be.png\" alt=\"Docker\" title=\"Docker\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/117207242-07d5a700-adf4-11eb-975e-be04e62b984b.png\" alt=\"Maven\" title=\"Maven\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/117533873-484d4480-afef-11eb-9fad-67c8605e3592.png\" alt=\"JUnit\" title=\"JUnit\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/192107858-fe19f043-c502-4009-8c47-476fc89718ad.png\" alt=\"REST\" title=\"REST\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/192108890-200809d1-439c-4e23-90d3-b090cf9a4eea.png\" alt=\"IntelliJ\" title=\"IntelliJ\"/\u003e\n\u003cimg width=\"60\" src=\"https://user-images.githubusercontent.com/25181517/192109061-e138ca71-337c-4019-8d42-4792fdaa7128.png\" alt=\"Postman\" title=\"Postman\"/\u003e\n\n---\n\n## Installation\n\nThere are two different ways to set up the project.\n\n### Set up with Java\n\n\u003e **Prerequisites**\n\u003e\n\u003e - **Java 17:** Java 17 must be installed on your local machine.\n\u003e\n\u003e - **Mysql:** You need to have a MySQL instance running on your local machine and create a schema named **url_shortener**.\n\n1. Clone the repo\n\n   ```shell\n   git clone https://github.com/furkancelikk/url-shortener.git\n   ```\n2. Change the directory\n\n   ```shell\n   cd url-shortener\n   ```\n3. Pull the dependencies and build the JAR file.\n\n   ```shell\n   mvnw clean install\n   ```\n4. Change the directory to the **target**\n\n   ```shell\n   cd target\n   ```\n5. Start the project.\n\n   ```shell\n   java -jar app.jar\n   ```\n\nYou can access the project at port 8080.\n\n**Note:** The following values are defined as environment variables in the project. If you want to customize these values, you can provide them as parameters when starting the project, as shown below:\n\n\n| Variable Name | Default Value | Description                |\n|---------------|---------------|----------------------------|\n| DB_HOST       | localhost     | MySQL host                 |\n| DB_PORT       | 3306          | MySQL port                 |\n| SCHEMA_NAME   | url           | Project schema name        |\n| DB_USERNAME   | root          | MySQL username             |\n| DB_PASSWORD   | root          | MySQL password             |\n| CODE_LENGTH   | 5             | Auto generated code length |\n\n```shell\njava -DCODE_LENGTH=10 -jar app.jar\n```\n\n### Setup with Docker\n\n\u003e **Prerequisites**\n\u003e\n\u003e - **Docker**: Docker must be installed on your local machine.\n\n1. Clone the repo\n\n   ```shell\n   git clone https://github.com/furkancelikk/url-shortener.git\n   ```\n2. Change the directory\n\n   ```\n   cd url-shortener\n   ```\n3. Start the project. This command will pull the necessary dependencies, download MySQL as a container, and run the project.\n\n   ```\n   docker compose up -d\n   ```\n\nYou can access the project at port 8080.\n\n**Note:** When starting the project with Docker, the following values are defined as environment variables. If you wish to customize these values, you can modify them in the [.env](.env) file.\n\n\n| Variable Name          | Value               | Description                |\n|------------------------|---------------------|----------------------------|\n| SERVICE_IMAGE_NAME     | url-shortener       | Project image name         |\n| SERVICE_CONTAINER_NAME | url-shortener       | Project container name     |\n| SERVICE_PORT           | 8080                | Project port               |\n| DB_CONTAINER_NAME      | url-shortener-mysql | MySQL container name       |\n| DB_PORT                | 3306                | MySQL port                 |\n| DB_USERNAME            | url-shortener       | MySQL user name            |\n| DB_PASSWORD            | p4ssword            | MySQL password             |\n| DB_ROOT_PASSWORD       | root                | MySQL root password        |\n| SCHEMA_NAME            | url-shortener       | MySQL scheme name          |\n| CODE_LENGTH            | 5                   | Auto generated code length |\n\n---\n\n#### [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkancelikk%2Furl-shortener","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurkancelikk%2Furl-shortener","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkancelikk%2Furl-shortener/lists"}