Skip to content
corbunculPublic

About

Проект для укорачивания длинных ссылок.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Проект "YACUT"

Проект для укорачивания длинных ссылок.

Оглавление

Описание

Позволяет создать короткую ссылку на ресурс, задав уникальную часть короткой ссылки самостоятельно или сгенерирвать её автоматически.

В проекте имеется станица с формой для создания короткой ссылки, а также API.

После запуска проекта на локальной машине форма доступна по адресу http://localhost:5000/.

У API имется два эндпоинта:

Технологии

Проект использует следующие технологии:

  • Python 3.9+
  • Flask
  • SQLAlchemy
  • SQLite (по умолчанию)

Установка

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

    git clone git@github.com:corbuncul/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
  • Создать файл ".env" и прописать константы:

    FLASK_APP={Ваше название приложения}
    FLASK_DEBUG={Режим отладки (True/False)}
    DATABASE_URI={Ваше подключение к базе данных (например: sqlite:///db.sqlite3)}
    SECRET_KEY={Ваш секртный ключ (любая случайная строка)}
  • Применить миграции:

    flask db upgrade

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

```bash
flask run
```

Проект будет доступен по адресу http://localhost:5000/

Примеры использования API проекта

  • Создание короткой ссылки c пользовательским вариантом:

    Запрос:

    [POST] http://localhost:5000/api/id/

    {
        "url": "string",
        "custom_id": "string"
    }

    Ответ:

    {
        "url": "string",
        "short_link": "string"
    }
  • Создание короткой ссылки автоматически:

    Запрос:

    [POST] http://localhost:5000/api/id/

    {
        "url": "string"
    }

    Ответ:

    {
        "url": "string",
        "short_link": "string"
    }
  • Получение оригинальной ссылки по короткой:

    Запрос:

    [GET] http://localhost:5000/api/id/{short_id}

    Ответ:

    {
        "url": "string"
    }
  • Формат ответа в случае возникновения ошибки:

    {
        "message": "Описание ошибки"
    }

Авторы

Автор: Иван Агафонов

Лицензия

Этот проект лицензирован под лицензией MIT.

Лицензия MIT

Copyright © «2024» «Иван Агафонов»

Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:

Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

About

Проект для укорачивания длинных ссылок.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

Generated from yandex-praktikum/yacut