This project was born out of my curiosity for how URL Shorteners work.
This is a simple URL shortener in Flask.
Shortens URL upto length 512 characters to 6 characters.
Made using Flask-SQLAlchemy. This URL shortener will be able to redirect links and keep stats on the number of times each link was visited.
Also has HTTP Basic Authentication to view stats.
All this data will be stored in a sqlite3 database
- "link" Table in the Database
- Index page
- Short URL generated
- Statistics (Needs HTTP Authentication)
Always recommended to create a virtual environment
-
Create virtual environment and install flask
pipenv install flask
-
To start shell and enter the venv
pipenv shell
-
Dependencies:(this step might not be needed)
pipenv install python-dotenv
pipenv install sql-alchemy
-
To run the app
start shell if not started
pipenv shell
flask run
-
Start python in terminal
python
-
from url_shortener import create_app
-
from url_shortener.extensions import db
-
from url_shortener.models import Link
-
To create tables and database
db.create_all(app = create_app())
-
To exit python console
exit()
-
To view database, write in terminal
sqlite3 url_shortener/db.sqlite3
-
To see the table names in database
.tables
-
To query the database
SELECT * FROM link;
-
To delete table contents but not table
DELETE FROM link;
-
To exit sqlite3
.exit
-
First off, thank you for considering contributing.
-
There are many ways to contribute, from improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into project itself.
-
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
-
Please make sure to add you issue number while submitting your pull request (PR).
-
You can also edit the readme and make it more user friendly to help out new contributors.
-
Users can create personalized URLs
-
Ability to view stats for individual links by adding "-stats" to URL
-
User can create a account and then generate and manage all the links and their stats from there
-
Security against cyber attacks
(more will be added along the way)
-
Working on your first Pull Request? You can learn how from this free series, How to Contribute to an Open Source Project on GitHub.
-
Friendly tutorial: http://makeapullrequest.com/
-
Feel free to ask for help; everyone is a beginner at first 😸
-
The smaller the proposed change, the better. If you’d like to propose two unrelated changes, submit two pull requests.
-
The more information, the better. Make judicious use of the pull request body. Describe what changes were made, why you made them, and what impact they will have for users.
-
If this is your first pull request, it may help to understand GitHub Flow.
-
Including screenshots/video of final interface/changes in your pull request is a must.
- You can chat with the community here.
This project was made using GitHub Codespaces Beta. Thanks to them for providing me early access to their such beautiful and useful feature.