Skip to content

Easy-to-use lightweight web tool for shortening URLs in a modern and customizable way.

License

Notifications You must be signed in to change notification settings

LyubomirT/url-slicer

Repository files navigation

URL Slicer πŸ”ͺ

License: GPL v3 Node.js Version Express Version MongoDB Version Contributions Welcome

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

🌐 Try URL Slicer out!

You can try out URL Slicer at url-slicer.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:

    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.

πŸ“œ License

This project is GPL-3.0 licensed.

πŸ‘€ Author

Lyubomir Ternavskiy


Made with ❀️ by Lyubomir Ternavskiy