Нужно разработать плагин для Wordpress.

UI

При включенном плагине на фронтенде в редакторе при редактировании картинки должна появиться кнопка "Enhance image quality". Нажатие на эту кнопку должно инициировать модальное окно примерно следующего вида:

Нажатия на кнопку clean artifacts и improve colors должны инициировать отправление оригинальной картинки на бэкенд, после чего справа должны отобразиться полученная с бэкенда улучшенная картинка и сообщение (Success или текст ошибки). По нажатию на save улучшенная картинка должна заменить оригинальную.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f67ee4d9-6bbd-4391-a996-16089380305c/Untitled.png

Предложения по улучшению UI/UX приветствуются.

Настройки плагина

Страница настроек плагина должна иметь одно поле License key и кнопку Save. По нажатию save заданная строка-ключ валидируется запросом на бэкенд и, в случае успеха, сохраняется для будущих запросов. Кроме того, пользователю отображается сообщение из ответа сервера.

Взаимодействие с бэкендом

Бэкенд предоставляет три ендпоинта:

GET /validate - принимает {"auth_key": SOME_KEY_STRING} , возвращает {"is_valid": bool, "message": string}

POST /improve_colors - принимает {"auth_key": KEY_STRING, "image": BASE64_ENCODED_IMAGE}, возвращает {"error": bool, "image": BASE64_ENCODED_IMAGE, "message": string}

POST /filter_artifacts полностью аналогичен предыдущему. В будущем может появиться больше ендпоинтов с таким API.

Пример использования:

curl --header "Content-Type: application/json" \\
  --request POST \\
  --data '{"auth_key":"test","image":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAyADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0iiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//2Q=="}' \\
  <https://zm20yxnpb2.execute-api.us-east-2.amazonaws.com/api/improve_colors>