URLShortener is a robust and user-friendly solution designed to simplify the management and sharing of long web addresses. With its intuitive interface and efficient backend powered by Flask and MongoDB, this project offers a seamless experience for shortening URLs. Developed with a focus on practicality and ease of use, URLShortener provides users with a reliable ally in managing their online links effortlessly.
The purpose of this project is to learn how to deal with databases, web development frameworks, and various libraries used in creating a URL shortener. This project provides hands-on experience with technologies like MongoDB, Flask, and Tailwind CSS.
Preview.mp4
This website is not currently being hosted.
Please checkout CONTRIBUTION.md for more information regarding contribution
Make sure you have Python and MongoDB installed on your system.
- Python: Download and install Python.
- MongoDB: Follow the installation guide for MongoDB.
- MongoDB Compass: Download and install MongoDB Compass for a GUI to interact with MongoDB.
-
Clone the repository
git clone https://github.com/AverageBlank/URLShortener.git cd URLShortener
-
Run install script
For Linux
bash install.sh
For Windows
./install.bat
-
Run MongoDB
- Start the MongoDB server. If you installed MongoDB locally, you can start it with the following command:
mongod
- Start the MongoDB server. If you installed MongoDB locally, you can start it with the following command:
-
Connect to MongoDB with MongoDB Compass
- Open MongoDB Compass.
- In the "New Connection" window, enter your MongoDB URI in the connection string field (this is the same URI you entered during the install phase (present in the
.env
file in root directory of the project)). - Click "Connect" to connect to your MongoDB server.
- You can now view and manage your databases and collections through the Compass GUI.
-
Run the application
For Linux
bash start.sh
For Windows
./start.bat
-
Open your browser
- Navigate to
http://127.0.0.1:5000/
to see the application running locally.
- Navigate to
- Python: The main programming language used for the backend.
- HTML: Markup language used for structuring the web pages.
- Tailwind CSS: A utility-first CSS framework for styling the web pages.
- JavaScript: Programming language used for client-side scripting.
- Flask: A lightweight WSGI web application framework in Python.
- PyMongo: A Python distribution containing tools for working with MongoDB.
- Datetime: A module to work with dates and times.
- Hashids: A small library to generate YouTube-like hashes from one or many numbers.
- Python-dotenv: Reads key-value pairs from a
.env
file and can set them as environment variables. - OS: A standard library in Python to interact with the operating system. Built-in Python library
- Random: Implements pseudo-random number generators for various distributions. Built-in Python library
- String: A built-in Python library to perform common string operations.
- Gunicorn: Python WSGI HTTP Server for UNIX systems(Used for Render Hosting. Ignore if running local instance)