Skip to content

AlbatovK/SpringDockerTemplate

Repository files navigation

Проект команды "Котята фон Неймана"

Участники команды

  • Албатов Константин
  • Подворный Артем
  • Суслов Илья
  • Горлов Артем

Стэк технологий

  • Spring - основной веб фреймворк
  • Redis - использование внешней базы данных для кэширования с интеграцией Spring Cache
  • Postgres - база данных для хранения данных о форматах и полях кэширования партнеров
  • Swagger - создание автоматической документации для упрощения тестирования и демонстрации веб-приложения
  • Docker - для удобного развертывания на локальных или удаленных хостингах (ссылка). В данный момент используется Render, так как исппользуется Free-tier, сервер засыпает после бездействия, необходимо подождать от 3 до 5 минут после первого запроса, после обновить страницу.
  • Spring WebSocket - для будущей возможной интеграции с ISO8583
  • Detekt и Ktlint - статические анализаторы Kotlin-кода, которые ускоряли и упрощали процесс разработки и отлаживания сервиса
  • Beeceptor - создание удаленного Mock Api для тестирования приложения и имитации загруженности системы

Структура проекта

Взаимодействие между компонентами

Структура веб-сервиса

Видео-демонстрация функционала

Ссылка ня яндекс-диск

Список эндпоинтов

Коллекция Postman для тестирования API

{
  "info": {
    "_postman_id": "b299db74-7851-44c3-8655-668972a35c53",
    "name": "Qiwi-Hackathon",
    "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json",
    "_exporter_id": "20739883"
  },
  "item": [
    {
      "name": "Visa Json Payment",
      "request": {
        "method": "PUT",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json",
            "type": "text"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "// Проверка эндпоинта /visa\n\n{\n    \"method\": \"\",\n    \"params\": {\n        \"card_holder_name\": \"CARDHOLDER NAME\",\n        \"card_number\": \"4278011111275400\",\n        \"card_expire\": \"2702\",\n        \"card_cvc\": \"067\",\n        \"amount\": \"1000\",\n        \"description\": \"Month subscription\",\n        \"redirect_url\": \"https://shop.merchant.com/order/23\"\n    },\n    \"id\": \"4mu_id\"\n}"
        },
        "url": "https://springdockertemplate.onrender.com/visa"
      },
      "response": []
    },
    {
      "name": "Master xml Payment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/xml",
            "type": "text"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n  <request><!--Проверка эндпоинта /master -->\n\t<pg_card_number>5266886676134311</pg_card_number>\n\t<pg_description>Оплата брони</pg_description>\n\t<pg_cardholder>Ivan Ivanov</pg_cardholder>\n    <pg_expire_date>0128</pg_expire_date>\n    <pg_cvv>55551</pg_cvv>\n  </request>"
        },
        "url": "https://springdockertemplate.onrender.com/master/{{$randomUUID}}"
      },
      "response": []
    },
    {
      "name": "Master Xml Payment",
      "request": {
        "method": "DELETE",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": ""
        },
        "url": "https://springdockertemplate.onrender.com/"
      },
      "response": []
    },
    {
      "name": "Random Structure Test",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/xml",
            "type": "text"
          },
          {
            "key": "Content-Type",
            "value": "application/json",
            "type": "text"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "// Проверка метода с любой структурой тестовых запросов, в данном случае определяется по заголовком Accept и Content-type\r\n\r\n{\r\n    \"a\": {\r\n        \"b\": {\r\n            \"c\": {\r\n\r\n            }\r\n        }\r\n    },\r\n    \"method\": \"payment\",\r\n    \"params\": {\r\n        \"card_holder_name\": \"CARDHOLDER NAME\",\r\n        \"card_number\": \"4278011111275400\",\r\n        \"card_expire\": \"2702\",\r\n        \"description\": \"Month subscription\",\r\n        \"redirect_url\": \"https://shop.merchant.com/order/23\"\r\n    },\r\n    \"description\": {\r\n        \"b\": null\r\n    },\r\n    \"id\": \"4490d1a0-fd21-44b6-84cc-a72d17b1c962\"\r\n}"
        },
        "url": "https://springdockertemplate.onrender.com/test"
      },
      "response": []
    },
    {
      "name": "Random Structure Test Copy",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json",
            "type": "text"
          },
          {
            "key": "Content-Type",
            "value": "application/xml",
            "type": "text"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<request>\r\n    <a>\r\n        <b>Helllo</b>\r\n    </a><!-- Проверка метода с любой структурой тестовых запросов, в данном случае определяется по заголовком Accept и Content-type -->\r\n    <pg_description>\r\n        <client>\r\n            <name>Name</name>\r\n            <surname>Surname</surname>\r\n        </client>\r\n    </pg_description>\r\n    <pg_cardholder>Ivan Ivanov</pg_cardholder>\r\n</request>"
        },
        "url": "https://springdockertemplate.onrender.com/test"
      },
      "response": []
    }
  ]
}

About

🌐 Spring boot + PostgreSQL + Redis + Docker autodeploy backend template (Changellenge Qiwi hackathon winner)

Topics

Resources

Stars

Watchers

Forks

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy