/yacut

Primary LanguagePython

Сервис YaCut

Описание проекта

Сервис YaCut - это сервис укорачивания ссылок и API к нему

Ключевые возможности сервиса:

  • генерация коротких ссылок и связь их с исходными длинными ссылками
  • переадресация на исходный адрес при обращении к коротким ссылкам

Пользовательский интерфейс сервиса — одна страница с формой. Эта форма состоит из двух полей:

  • обязательного для длинной исходной ссылки
  • необязательного для пользовательского варианта короткой ссылки (не должен превышать 16 символов)

Если пользователь предложит вариант короткой ссылки, который уже занят, то появляется соответствующее уведомление. Существующая в базе данных ссылка должна остаться неизменной.

Если пользователь не заполнит поле со своим вариантом короткой ссылки, то сервис должен сгенерировать её автоматически. Формат для ссылки по умолчанию — шесть случайных символов, в качестве которых можно использовать:

  • большие латинские буквы,
  • маленькие латинские буквы,
  • цифры в диапазоне от 0 до 9.

Автоматически сгенерированная короткая ссылка добавляется в базу данных, но только если в ней уже нет такого же идентификатора. В противном случае идентификатор генерируется заново.

Развертывание проекта

Клонировать репозиторий и перейти в него в командной строке:

git clone git@github.com:Esposus/yacut.git
cd yacut

Cоздать и активировать виртуальное окружение:

python3 -m venv venv
  • Если у вас Linux/macOS

    source venv/bin/activate
    
  • Если у вас windows

    source venv/scripts/activate
    

Установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip
pip install -r requirements.txt

Запуск тестов:

pytest

Запуск проекта:

flask run

Автор проекта:

Дмитрий Морозов