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: over 1 year 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 (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-19T00:12:51.000Z (over 1 year ago)
- Last Synced: 2025-03-18T01:43:00.694Z (over 1 year ago)
- Topics: collaborate, easy, full-stack, heroku, intuitive, meen-stack, modern, mongodb, url-shortener, web
- Language: EJS
- Homepage: https://url-slicer-4665bb5fd763.herokuapp.com/
- Size: 458 KB
- Stars: 24
- 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
# IMPORTANT: COMPLETE REVAMP UPCOMING
The 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.
# URL Slicer 🔪
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://nodejs.org)
[](https://expressjs.com)
[](https://www.mongodb.com)
[](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!

## 🌐 Try URL Slicer out!
You can try out URL Slicer at [the website](https://url-slicer-4665bb5fd763.herokuapp.com/). 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:
```
login=your_outlook_email@example.com
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: [ternavski103@gmail.com](mailto:ternavski103@gmail.com)
- Server: [The Orange Squad](https://discord.gg/the-orange-squad)
---
Made with ❤️ by Lyubomir Ternavskiy