{"id":16588988,"url":"https://github.com/lyubomirt/url-slicer","last_synced_at":"2025-03-21T13:31:08.406Z","repository":{"id":253445926,"uuid":"795974607","full_name":"LyubomirT/url-slicer","owner":"LyubomirT","description":"Easy-to-use lightweight web tool for shortening URLs in a modern and customizable way.","archived":false,"fork":false,"pushed_at":"2025-01-19T00:12:51.000Z","size":469,"stargazers_count":24,"open_issues_count":4,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T01:43:00.694Z","etag":null,"topics":["collaborate","easy","full-stack","heroku","intuitive","meen-stack","modern","mongodb","url-shortener","web"],"latest_commit_sha":null,"homepage":"https://url-slicer-4665bb5fd763.herokuapp.com/","language":"EJS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LyubomirT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"buy_me_a_coffee":"lyubomirt"}},"created_at":"2024-05-04T15:01:48.000Z","updated_at":"2025-01-19T00:12:52.000Z","dependencies_parsed_at":"2024-08-16T19:33:17.750Z","dependency_job_id":"360b7e0b-4d72-4214-aa32-c1e87d8f3d37","html_url":"https://github.com/LyubomirT/url-slicer","commit_stats":{"total_commits":92,"total_committers":4,"mean_commits":23.0,"dds":0.09782608695652173,"last_synced_commit":"e255540a37b34cfdf113cce1666d551820672fa9"},"previous_names":["lyubomirt/url-slicer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyubomirT%2Furl-slicer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyubomirT%2Furl-slicer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyubomirT%2Furl-slicer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyubomirT%2Furl-slicer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LyubomirT","download_url":"https://codeload.github.com/LyubomirT/url-slicer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244806076,"owners_count":20513374,"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":["collaborate","easy","full-stack","heroku","intuitive","meen-stack","modern","mongodb","url-shortener","web"],"created_at":"2024-10-11T23:07:18.396Z","updated_at":"2025-03-21T13:31:08.399Z","avatar_url":"https://github.com/LyubomirT.png","language":"EJS","funding_links":["https://buymeacoffee.com/lyubomirt","https://www.buymeacoffee.com/lyubomirt"],"categories":[],"sub_categories":[],"readme":"# IMPORTANT: COMPLETE REVAMP UPCOMING\n\nThe app is not fully secure, stable, and reliable in my opinion. I am currently working on a full revamp that will improve the visual design and fix many issues users are currently facing.\n\n# URL Slicer 🔪\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Node.js Version](https://img.shields.io/badge/node-v14.x-green.svg)](https://nodejs.org)\n[![Express Version](https://img.shields.io/badge/express-v4.18.2-blue.svg)](https://expressjs.com)\n[![MongoDB Version](https://img.shields.io/badge/mongodb-v6.x-green.svg)](https://www.mongodb.com)\n[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/LyubomirT/url-slicer/issues)\n\nURL Slicer is an easy-to-use, lightweight web tool for shortening URLs in a modern and customizable way. Slice through the clutter of long URLs and serve your audience with clean, manageable links!\n\n![Demo](img/demo.png)\n\n## 🌐 Try URL Slicer out!\n\nYou can try out URL Slicer at [the website](https://url-slicer-4665bb5fd763.herokuapp.com/). It's totally free and has absolutely no limits!\n\n## 🚀 Features\n\n- 🔗 Custom short links\n- 📊 Detailed analytics\n- 🔒 Advanced security options\n- 📱 Mobile-friendly design\n- 🌍 Geo-targeting\n- 🔐 Password protection\n- 🖼️ QR code generation\n\n## 🛠️ Technologies Used\n\n- **Backend**: Node.js with Express.js\n- **Database**: MongoDB with Mongoose\n- **Authentication**: Passport.js\n- **Frontend**: EJS templating engine\n- **Styling**: Custom CSS\n- **Icons**: Feather Icons\n- **Email**: Nodemailer (with Outlook SMTP)\n- **Geolocation**: geoip-lite\n- **QR Code**: qrcode\n\n## 🏗️ Project Structure\n\n```\nurl-slicer/\n│\n├── views/                 # EJS templates\n├── public/                # Static assets\n│   └── styles.css         # Main stylesheet\n├── server.js              # Main application file\n├── package.json           # Project dependencies\n└── .env                   # Environment variables (not in repo)\n```\n\n## 🚀 Getting Started\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/LyubomirT/url-slicer.git\n   ```\n\n2. Install dependencies:\n   ```\n   npm install\n   ```\n\n3. Set up your environment variables in a `.env` file:\n   ```\n   login=your_outlook_email@example.com\n   password=your_outlook_password\n   PORT=3000\n   SESSION_SECRET=your_session_secret\n   MongoURI=your_mongodb_connection_string\n   ```\n\n4. Start the server:\n   ```\n   npm start\n   ```\n\n5. Visit `http://localhost:3000` in your browser.\n\n## 🔐 Security Features\n\n- Password hashing with bcrypt\n- Session management\n- CSRF protection\n- Rate limiting for password attempts\n- Secure password reset mechanism\n\n## 📊 Analytics\n\nURL Slicer provides detailed analytics for your shortened URLs, including:\n\n- Total clicks\n- Geographical distribution of clicks\n- Device and browser statistics\n- Click-through rates over time\n\n## 🌐 API Endpoints\n\n- `/shorten`: Create a new short URL\n- `/:code`: Redirect to the original URL\n- `/stats/:code`: Get statistics for a specific URL\n- `/api/analytics`: Get overall analytics data\n\n## 🤝 Contributing\n\nContributions, issues, and feature requests are welcome! Feel free to check [issues page](https://github.com/LyubomirT/url-slicer/issues).\n\n## 📜 License\n\nThis project is [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) licensed.\n\n## 👤 Author\n\n**Lyubomir Ternavskiy**\n\n- GitHub: [@LyubomirT](https://github.com/LyubomirT)\n- Buy Me a Coffee: [Support URL Slicer](https://www.buymeacoffee.com/lyubomirt)\n- Discord: @lyubomirt\n- Email: [ternavski103@gmail.com](mailto:ternavski103@gmail.com)\n- Server: [The Orange Squad](https://discord.gg/the-orange-squad)\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by \u003ca href=\"https://github.com/LyubomirT\"\u003eLyubomir Ternavskiy\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyubomirt%2Furl-slicer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyubomirt%2Furl-slicer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyubomirt%2Furl-slicer/lists"}