Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lyubomirt/url-slicer
Easy-to-use lightweight web tool for shortening URLs in a modern and customizable way.
https://github.com/lyubomirt/url-slicer
collaborate easy full-stack heroku intuitive meen-stack modern mongodb url-shortener web
Last synced: 16 days ago
JSON representation
Easy-to-use lightweight web tool for shortening URLs in a modern and customizable way.
- Host: GitHub
- URL: https://github.com/lyubomirt/url-slicer
- Owner: LyubomirT
- License: gpl-3.0
- Created: 2024-05-04T15:01:48.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-10-13T03:00:09.000Z (about 1 month ago)
- Last Synced: 2024-10-19T02:41:38.656Z (25 days ago)
- Topics: collaborate, easy, full-stack, heroku, intuitive, meen-stack, modern, mongodb, url-shortener, web
- Language: EJS
- Homepage: https://urlslicer.obl.ong/
- Size: 451 KB
- Stars: 23
- Watchers: 1
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# URL Slicer 🔪
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Node.js Version](https://img.shields.io/badge/node-v14.x-green.svg)](https://nodejs.org)
[![Express Version](https://img.shields.io/badge/express-v4.18.2-blue.svg)](https://expressjs.com)
[![MongoDB Version](https://img.shields.io/badge/mongodb-v6.x-green.svg)](https://www.mongodb.com)
[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/LyubomirT/url-slicer/issues)URL 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!
![Demo](img/demo.png)
## 🌐 Try URL Slicer out!
You can try out URL Slicer at [url-slicer.obl.ong](https://urlslicer.obl.ong). It's totally free and has absolutely no limits!
## 🚀 Features
- 🔗 Custom short links
- 📊 Detailed analytics
- 🔒 Advanced security options
- 📱 Mobile-friendly design
- 🌍 Geo-targeting
- 🔐 Password protection
- 🖼️ QR code generation## 🛠️ Technologies Used
- **Backend**: Node.js with Express.js
- **Database**: MongoDB with Mongoose
- **Authentication**: Passport.js
- **Frontend**: EJS templating engine
- **Styling**: Custom CSS
- **Icons**: Feather Icons
- **Email**: Nodemailer (with Outlook SMTP)
- **Geolocation**: geoip-lite
- **QR Code**: qrcode## 🏗️ Project Structure
```
url-slicer/
│
├── views/ # EJS templates
├── public/ # Static assets
│ └── styles.css # Main stylesheet
├── server.js # Main application file
├── package.json # Project dependencies
└── .env # Environment variables (not in repo)
```## 🚀 Getting Started
1. Clone the repository:
```
git clone https://github.com/LyubomirT/url-slicer.git
```2. Install dependencies:
```
npm install
```3. Set up your environment variables in a `.env` file:
```
[email protected]
password=your_outlook_password
PORT=3000
SESSION_SECRET=your_session_secret
MongoURI=your_mongodb_connection_string
```4. Start the server:
```
npm start
```5. Visit `http://localhost:3000` in your browser.
## 🔐 Security Features
- Password hashing with bcrypt
- Session management
- CSRF protection
- Rate limiting for password attempts
- Secure password reset mechanism## 📊 Analytics
URL Slicer provides detailed analytics for your shortened URLs, including:
- Total clicks
- Geographical distribution of clicks
- Device and browser statistics
- Click-through rates over time## 🌐 API Endpoints
- `/shorten`: Create a new short URL
- `/:code`: Redirect to the original URL
- `/stats/:code`: Get statistics for a specific URL
- `/api/analytics`: Get overall analytics data## 🤝 Contributing
Contributions, issues, and feature requests are welcome! Feel free to check [issues page](https://github.com/LyubomirT/url-slicer/issues).
## 📜 License
This project is [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) licensed.
## 👤 Author
**Lyubomir Ternavskiy**
- GitHub: [@LyubomirT](https://github.com/LyubomirT)
- Buy Me a Coffee: [Support URL Slicer](https://www.buymeacoffee.com/lyubomirt)
- Discord: @lyubomirt
- Email: [[email protected]](mailto:[email protected])
- Server: [The Orange Squad](https://discord.gg/the-orange-squad)---
Made with ❤️ by Lyubomir Ternavskiy