{"id":29825797,"url":"https://github.com/lra8dev/quickshort","last_synced_at":"2026-04-11T04:33:52.599Z","repository":{"id":283265400,"uuid":"951182003","full_name":"lra8dev/quickshort","owner":"lra8dev","description":"A simple and efficient URL Shortener App built using the MERN stack. This application allows users to shorten long URLs and redirect to the original URL when accessing the shortened link.","archived":false,"fork":false,"pushed_at":"2025-03-24T19:23:00.000Z","size":124,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-27T06:00:35.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://quickshort-ten.vercel.app","language":"TypeScript","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/lra8dev.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,"zenodo":null}},"created_at":"2025-03-19T09:35:34.000Z","updated_at":"2025-06-08T14:16:13.000Z","dependencies_parsed_at":"2025-03-19T11:23:25.866Z","dependency_job_id":"e78d7377-2c9a-41fc-bdcd-af557daf849e","html_url":"https://github.com/lra8dev/quickshort","commit_stats":null,"previous_names":["laxmanrathod69/quickshort","lra8dev/quickshort"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lra8dev/quickshort","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lra8dev%2Fquickshort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lra8dev%2Fquickshort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lra8dev%2Fquickshort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lra8dev%2Fquickshort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lra8dev","download_url":"https://codeload.github.com/lra8dev/quickshort/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lra8dev%2Fquickshort/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267627243,"owners_count":24117716,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-07-29T04:12:39.535Z","updated_at":"2026-04-11T04:33:47.555Z","avatar_url":"https://github.com/lra8dev.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr /\u003e\n    \u003ca href=\"https://quickshort-ten.vercel.app\" target=\"_blank\"\u003e\n      \u003cimg src=\"./public/project-banner.png\" alt=\"Project Banner\"\u003e\n    \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003cdiv\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-React.js-0A1A2F?style=flat\u0026logo=react\" alt=\"reactjs\" /\u003e\n    \u003cimg src=\"https://shields.io/badge/TypeScript-3178C6?logo=TypeScript\u0026logoColor=FFF\" alt=\"typescript\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Express.js-000000?logo=express\u0026logoColor=fff\u0026style=flat\" alt=\"expressjs\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/tailwindcss-0F172A?\u0026logo=tailwindcss\" alt=\"tailwindcss\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-Mongodb-05122A?style=flat\u0026logo=Mongodb\" alt=\"mongodb\" /\u003e\n  \n  \u003c/div\u003e\n  \u003ch3 align=\"center\"\u003eQuickShort - Tiny Links, Big Impact! 🚀\u003c/h3\u003e\n\n   \u003cdiv align=\"center\"\u003e\n        A simple and efficient URL Shortener App built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. This application allows users to shorten long URLs and redirect to the original URL when accessing the shortened link.\n    \u003c/div\u003e\n    \n\u003c/div\u003e\n\n## 📋 Table of Contents\n\n1. 🕸️ [Features](#-features)\n2. ⚙️ [Tech Stack](#️-tech-stack)\n3. 📂 [Project Structure](#️-project-structure)\n4. 🤸 [Quick Start](#-getting-started)\n5. 🔗 [API Endpoints](#-api-endpoints)\n6. 🔭 [Deployment](#-deployment)\n7. 🪴 [Future Enhancements](#-future-enhancements)\n8. 🤝 [Contributing](#-contributing)\n9. 📄 [License](#-license)\n10. 📩 [Contact](#-contact)\n\n## 🚀 Features\n\n- 🔗 Shorten long URLs with a unique identifier\n- 🚀 Instant redirection to the original URL\n- 📊 Track the number of clicks for each shortened link\n- 🌐 Responsive and user-friendly UI\n- 🎨 Styled with Tailwind CSS\n\n## 🛠️ Tech Stack\n\n### **Frontend**\n\n- React.js (Vite for fast development)\n- Tailwind CSS (for modern UI styling)\n- React Query (for state management)\n- Axios (for API requests)\n\n### **Backend**\n\n- Node.js \u0026 Express.js (REST API)\n- MongoDB \u0026 Mongoose (Database \u0026 Schema management)\n- nanoid (for generating unique short URLs)\n- dotenv \u0026 cors (environment configuration \u0026 cross-origin handling)\n\n## 🏗️ Project Structure\n\n```ts\n/url-shortener\n ├── client/        (React.js Frontend)\n ├── server/        (Express.js Backend)\n ├── public/        (Static Assets)\n ├── package.json   (Project Dependencies)\n ├── .gitignore     (Git Ignore File)\n ├── LICENSE        (Project License)\n ├── README.md      (Project Documentation)\n```\n\n## 🤸 Getting Started\n\nFollow these steps to set up the project locally on your machine.\n\n**Prerequisites**\n\nMake sure you have the following installed on your machine:\n\n- [Git](https://git-scm.com/) - for version control\n- [Node.js](https://nodejs.org/en/) - for running JavaScript on the server\n- [pnpm](https://www.pnpm.io/) - for package management\n\n### 1️⃣ Clone the Repository\n\n```sh\ngit clone https://github.com/your-username/quickshort.git\ncd quickshort\n```\n\n### 2️⃣ Backend Setup (Node.js \u0026 Express)\n\n```sh\ncd server\npnpm install\n```\n\n#### 🔹 Create a `.env` file in the `server/` directory\n\n```ts\nCLIENT_API = \u003cyour_frontend_api_url\u003e;\nSERVER_API = \u003cyour_backend_api_url\u003e;\nMONGO_URI = \u003cyour_mongodb_connection_string\u003e;\nPORT = 5000;\n```\n\n#### 🔹 Start the Backend Server\n\n```sh\npnpm dev\n```\n\n### 3️⃣ Frontend Setup (React.js)\n\n```sh\ncd ../client\npnpm install\n```\n\n#### 🔹 Create a `.env` file in the `client/` directory\n\n```ts\nVITE_SERVER_API = \u003cyour_backend_api_url\u003e;\n```\n\n#### 🔹 Start the Frontend Server\n\n```sh\npnpm dev\n```\n\n### 4️⃣ Open the App\n\nVisit: [http://localhost:5173](http://localhost:5173)\n\n## 📌 API Endpoints\n\n### 1️⃣ **Shorten a URL**\n\n**POST** `/short`\n\n```json\n{\n  \"longUrl\": \"https://example.com\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"shortUrl\": \"http://localhost:5000/abc1234\"\n}\n```\n\n### 2️⃣ **Redirect to Original URL**\n\n**GET** `/:shortId`\n\nWhen visiting `http://localhost:5000/abc1234`, it redirects to `https://example.com`.\n\n## 🌍 Deployment\n\n- **Frontend**: Vercel\n- **Backend**: Render\n- **Database**: MongoDB Atlas\n\n## 🔥 Future Enhancements\n\n✅ Add User Authentication (JWT) \u003c/br\u003e\n✅ Allow Custom Short URLs \u003c/br\u003e\n✅ Track Click Analytics \u003c/br\u003e\n✅ Create a Dashboard for Managing URLs\n\n## 🙌 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\nTo contribute:\n\nFork the repository \u003c/br\u003e\nCreate your feature branch (`git checkout -b feature/your-feature`) \u003c/br\u003e\nCommit your changes (`git commit -m 'feat: add your feature'`) \u003c/br\u003e\nPush to the branch (`git push origin feature/your-feature`) \u003c/br\u003e\n\n## 📜 License\n\nThis project is licensed under the Apache License - see the [LICENSE](LICENSE) file for details.\n\n## 📩 Contact\n\nFor any questions or suggestions, feel free to reach out at [laxmanrathod.dev@gmail.com](mailto:laxmanrathod.dev@gmail.com).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flra8dev%2Fquickshort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flra8dev%2Fquickshort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flra8dev%2Fquickshort/lists"}