More than just a URL Shortener
Report Bug
·
Request Feature
URL-Shortner is a full-customizable, open source, free-to-use, usable-design-focued, tracking-intensive URL Shortener with awesome features, and supports:
- Creating short urls from long ones with, or without an account
- Customize back-halfs on every slug
- Deploy to custom URL and Infrastructure
- Edit links after they're created
- Quick Redirections in less than 150ms
- Fast, Reliable
- Built on Modern and Well-used Technologies like Sequalize, Joi & NodeJS
- Use your own DBMS. URL-Shortner is compatible with MySQL, PostgreSQL and many more
The following technologies were involved in the making of this project.
- Node.js - For the backend of the app
- Joi - For querying the backend from the frontend efficiently
- Sequalize - The ORM used for the app
- Any relational or non-relational database that sequalize supports
To get started with having your own instance of URL-Shortner, follow the steps described in the following section
You will need these to be already installed:
- NodeJS 16+ and NPM
- A supported database system
And that's it
Follow these steps to get started with your own instance of URL-Shortner
- Clone the repo and
cdto the folder base of this repo - Run command
npm installto install all the dependencies - Create a database named
url_shortnerin your chosen DBMS and note down the connection Username and Password - Fill in the values in the
.envfile - To promote to production, run
npm start
This project is far from perfect, and we'll reach there one day, or at least get close.
- Add forgotten password-reset capabilities
- Adding extra features such as enabling or disabling tracking on certain links
- Adding docker-compose supported quick installation
- Track each and every click on a slug, and retrieve
- IP address
- ISP Name
- IP-Location
- Device details like OS Version and Device Model
- Browser Name and including version
Known Issues:
See the open issues for a full list of proposed features (and known issues).
- Downlaod Postman app
- Import the Postman file
- Run the server and play with it :)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.md for more information.