Shorting (https://cuturls.live/)
-
Install git on Linux:
sudo apt-get install -y git
-
Clone or download this repo.
-
Install pip and vitualenv on Linux:
sudo apt-get install -y virtualenv
sudo apt-get install -y python3-pip
-
Create a virtual environment on Linux or Mac:
virtualenv -p python3 ~/.virtualenvs/shorting
-
Activate the virtual environment on Linux or Mac:
source ~/.virtualenvs/shorting/bin/activate
-
Install requirements in the virtualenv:
pip3 install -r requirements.txt
-
Install components for Ubuntu:
sudo apt-get update
sudo apt-get install python-dev libpq-dev postgresql postgresql-contrib
-
Switch to postgres (PostgreSQL administrative user):
sudo su postgres
-
Log into a Postgres session:
psql
-
Create database with name shorting:
CREATE DATABASE shorting;
-
Create a database user which we will use to connect to the database:
CREATE USER shorting_user WITH PASSWORD 'shorting_pass';
-
Modify a few of the connection parameters for the user we just created:
ALTER ROLE shorting_user SET client_encoding TO 'utf8';
ALTER ROLE shorting_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE shorting_user SET timezone TO 'UTC';
-
Give our database user access rights to the database we created:
GRANT ALL PRIVILEGES ON DATABASE shorting TO shorting_user;
-
Exit the SQL prompt and the postgres user's shell session:
\q
thenexit
-
Activate the virtual environment:
source ~/.virtualenvs/shorting/bin/activate
-
Make Django database migrations:
python manage.py makemigrations
then:python manage.py migrate
- Create an admin user:
python manage.py createsuperuser
- Run the project locally:
python manage.py runserver
- Navigate to:
http://localhost:8000/admin/
Endpoint: short-url/
Method: POST
body: {"original_url": "url"}
Endpoint: short-url/{key}
Method: GET
-> sudo ssh -i ShortingKeyPair.pem ubuntu@ec2-3-132-2-109.us-east-2.compute.amazonaws.com