Coder Social home page Coder Social logo

yacut's Introduction

Yacut

Описание

Учебный проект для практики работы во фреймворке Flask.

Yacut - это сервис укорачивания ссылок, который ассоциирует длинную пользовательскую ссылку с короткой. Короткую ссылку может предложить сам пользователь, или же сервис самостоятельно её сгенерирует.

Иными словами, при помощи данного сервиса пользователь может превратить длинную и неудобную ссылку наподобие "https://flask.palletsprojects.com/en/2.2.x/changes/#version-2-0-0" в короткую - "http://localhost/ver2". После создания короткой ссылки при переходе по ней происходит переадресация на исходный адрес.

Помимо работы в браузере с графическим интерфейсом всем желающим доступен API, дублирующий весь функционал сервиса.

Ключевые технологии и библиотеки:

Установка

  1. Склонируйте репозиторий:
git clone [email protected]:AbbadonAA/yacut.git
  1. Активируйте venv и установите зависимости:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Создайте в корневой директории файл .env со следующим наполнением:
FLASK_APP=yacut
FLASK_ENV=development или production
DATABASE_URI=sqlite:///db.sqlite3
SECRET_KEY=<ваш_секретный_ключ>
  1. Проект готов к запуску.

Управление:

Для локального запуска выполните команду:

flask run

Сервис будет запущен и доступен по следующим адресам:

  • http://localhost/ - главная страница сервиса;

    • Если не заполнить поле для короткой ссылки, она будет сгенерирована автоматически.
    • Короткая ссылка должна быть не длиннее 16 символов (цифры и латинские буквы в любом регистре).
  • http://localhost/api/id/ - эндпоинт, принимающий POST-запросы;

    • Схема POST-запроса:
      {
      "url": "string",
      "custom_id": "string" * (необязательное поле)
      }
    • Схема ответа на POST-запрос:
      {
      "url": "string",
      "short_link": "string"
      }
  • http://localhost/api/id/short_id/ - эндпоинт, принимающий GET-запросы.

    В адресе вместо <short_id> должна быть указана введённая или сгенерированная короткая ссылка.

    • Схема ответа на GET-запрос:
      {
      "url": "string"
      }

    Полная спецификация API доступна в репозитории - файл openapi.yml

Лицензия

  • MIT License

Автор

Pushkarev Anton

[email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.