{"id":19620638,"url":"https://github.com/nakov/shorturl","last_synced_at":"2025-04-28T03:32:08.419Z","repository":{"id":37736941,"uuid":"339882277","full_name":"nakov/ShortURL","owner":"nakov","description":"URL Shortener (JS App)","archived":false,"fork":false,"pushed_at":"2022-06-22T08:52:43.000Z","size":26,"stargazers_count":3,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T05:51:12.078Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/nakov.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}},"created_at":"2021-02-17T23:24:44.000Z","updated_at":"2025-04-01T18:34:07.000Z","dependencies_parsed_at":"2022-08-24T16:00:27.118Z","dependency_job_id":null,"html_url":"https://github.com/nakov/ShortURL","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FShortURL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FShortURL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FShortURL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FShortURL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nakov","download_url":"https://codeload.github.com/nakov/ShortURL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251246155,"owners_count":21558759,"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":[],"created_at":"2024-11-11T11:19:32.742Z","updated_at":"2025-04-28T03:32:08.041Z","avatar_url":"https://github.com/nakov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Short URL JS App + RESTful API\n\nThe JS app \"Short URL\" holds a collection of URLs, accessible with a short code:\n - Add a new URL -\u003e generates a short URL\n - Redirect by short URL to the original URL\n - Statistics: URL | Short URL | Date Created | Visits\n\n## App Details\n\nThe app is based on Node.js + Express.js + Pug.\n - It has **no database** and app data is not persistent!\n\nDemo:\n - Web app live demo: https://shorturl.nakov.repl.co\n - RESTful API live demo: https://shorturl.nakov.repl.co/api\n - Play with the code at: https://repl.it/@nakov/shorturl\n\n## RESTful API\n\nThe following endpoints are supported:\n - `GET /api` - list all API endpoints\n - `GET /api/urls` - list all shout URLs\n - `GET /api/urls/:shortCode` - finds short URL by given `shortCode`\n - `POST /api/urls` - create a new URL shortcode (post a JSON objects in the request body, e.g. `{\"url\":\"https://cnn.com\", \"shortCode\":\"cnn\"}`\n - `DELETE /api/urls/:shortCode` - deletes short URL by given `shortCode`\n - `POST /api/urls/visit/:shortCode` - visits short URL by given `shortCode` (increases the visits count)\n\n## Windows Desktop Client App\n\nhttps://github.com/nakov/ShortURL-DesktopClient\n\n## Screenshots\n\n![image](https://user-images.githubusercontent.com/1689586/108281638-cb959180-7188-11eb-872a-f8c9bead1cf1.png)\n\n![image](https://user-images.githubusercontent.com/1689586/108281720-eec04100-7188-11eb-9329-fde9ac83946f.png)\n\n![image](https://user-images.githubusercontent.com/1689586/108281760-00a1e400-7189-11eb-9cc0-f2b76fe54dcf.png)\n\n![image](https://user-images.githubusercontent.com/1689586/108353928-632eca80-71f1-11eb-819d-1d0559c69590.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnakov%2Fshorturl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnakov%2Fshorturl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnakov%2Fshorturl/lists"}