Code Monkey home page Code Monkey logo

tech-test-vk's Introduction

ТехноТест Профильное Задание VK

Здесь представлено задание по созданию REST API сервиса, отслеживающего выполнение заданий пользователями и начисляющий награды за их выполнение. Сервис написан на Go и использует PostgreSQL в качестве базы данных, Gin в качестве фреймворка.

Запуск приложения

Для запуска сервиса необходимо установить Docker и Docker Compose.

  1. Клонируйте репозиторий:
git clone https://github.com/meligera/tech-test-vk.git

cd tech-test-vk
  1. Запустите контейнеры Docker:
docker-compose up -d

Это запустит контейнеры для сервиса и базы данных PostgreSQL. База данных будет проинициализирована с помощью init.sql при первом запуске.

  1. Сервис будет доступен по адресу http://localhost:8080.

API

Готовые коллекции для импорта:

Insomnia API collection - https://mamrenko.ru/downloads/Insomnia-VK-TECH-DEMO.json

Postman API collection - https://mamrenko.ru/downloads/VK-TECH-DEMO.postman_collection.json

Создание пользователя

  • URL: /create_user
  • Метод: POST
  • Тело запроса:
{
  "name": "имя пользователя",
  "balance": 0
}

Ответы:

  • 200 OK: Пользователь успешно создан.
  • 400 Bad Request: Ошибка в данных запроса. (такой пользователь уже создан)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Примечание:

Если не указан параметр balance в запросе, то по умолчанию он будет равен 0


Создание задания

  • URL: /create_quest
  • Метод: POST
  • Тело запроса:
{
  "name": "название задания",
  "cost": 0
}

Ответы:

  • 200 OK: Задание успешно создано.
  • 400 Bad Request: Ошибка в данных запроса. (такое задание уже создано)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Выполнения задания

  • URL: /complete
  • Метод: POST
  • Тело запроса:
{
  "user_id": 1,
  "quest_id": 1
}

Ответы:

  • 200 OK: Задание успешно выполнено.
  • 400 Bad Request: Ошибка в данных запроса. (задание уже было выполено пользователем)
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Получение истории пользователя

  • URL: /history/:userId
  • Метод: GET

Ответы:

  • 200 OK: Возвращает имя пользователя, баланс и список завершенных квестов.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Получение списка всех пользователей

  • URL: /users
  • Метод: GET

Ответы:

  • 200 OK: Возвращает список всех пользователей с их id, именами и балансами.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

Получение списка всех заданий

  • URL: /quests
  • Метод: GET

Ответы:

  • 200 OK: Возвращает список всех заданий с их id, названиями и стоимостью.
  • 500 Internal Server Error: Внутренняя ошибка сервера.

tech-test-vk's People

Watchers

 avatar

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.