A fully functional URL shortener built with Python and Flask, featuring a mesmerizing, interactive frontend created with vanilla JavaScript and CSS.
The application features a dynamic, multi-layered UI with an animated gradient, a "living constellation" particle system, and a "liquid" cursor that leaves a speed-sensitive trail.
- Core URL Shortening: Convert long URLs into short, easy-to-share links.
- Custom Aliases: Users can provide their own custom names for short links.
- Random Code Generation: Automatically generates a unique 6-character code if no alias is given.
- Persistent Storage: Uses SQLite to save all links.
- Error Handling: Gracefully handles when a user tries to create a duplicate alias.
- Mesmerizing UI:
- Animated gradient background.
- "Living Constellation" effect with drifting, connecting particles.
- Custom "liquid" cursor that leaves a speed-sensitive "supernova" particle trail.
- Ripple/shockwave effect on mouse clicks.
- Backend: Python, Flask
- Database: SQLite
- Frontend: HTML5, CSS3 (with custom properties and animations), Vanilla JavaScript (using HTML Canvas)
-
Clone the repository:
git clone [https://github.com/Mheet/URL-Shortner.git](https://github.com/Mheet/URL-Shortner.git) cd URL-Shortner -
Create and activate a virtual environment:
# For Windows python -m venv venv .\venv\Scripts\activate # For Mac/Linux python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install Flask
-
Initialize the database:
# This only needs to be run once python -m flask initdb -
Run the application in debug mode:
python -m flask run --debug
The application will be available at http://127.0.0.1:5000.
- Fork the repo
- Create a new branch (
git checkout -b feature/MyFeature) - Commit your changes (
git commit -m "Add MyFeature") - Push to the branch (
git push origin feature/MyFeature) - Create a Pull Request
This project is licensed under the MIT License.
Mheet Singh
- GitHub: @Mheet
- LinkedIn: @Mheet
- Project Repo: https://www.shorturl.at/(https://github.com/Mheet/URL-Shortner)

