vortex-task/README.md
2024-06-30 19:01:49 +03:00

100 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Общие сведения
- **Название проекта:** Сервис сбора статистики
- **Описание проекта:** Микросервис на *golang* для сбора статистики
- **Цель проекта:** Создать сервис с возможностью хранения статистики в базе данных
## Требования к функциональности
Должно быть **4 api ручки**:
```GetOrderBook(exchange_name, pair string) ([]*DepthOrder, error)```
```SaveOrderBook(exchange_name, pair string, orderBook []*DepthOrder) error```
```GetOrderHistory(client *Client) ([]*HistoryOrder, error)```
```SaveOrder(client *Client, order *HistoryOrder) error```
## Технические требования
- **Язык программирования:** *Go 1.22*
- **Библиотеки и фреймворки:** Любые на ваш выбор
- **Архитектура:** REST API
- **База данных:** Лучше реализовать *ClickHouse*, но можно и *Postgres*
## Нефункциональные требования
- **Производительность:** Время отклика сервера не более 200 мс
- **Rps:** до 200 на запись, до 100 на чтение
## Тестирование
**Тестирование:** Unit-тесты для всех основных функций
## Требования к документации
- **Документация кода:** Комментарии к основным модулям и функциям
- **Пользовательская документация:** Руководство пользователя
## Детали реализации:
- Таблица **order_book**
| Столбец | Тип данных |
|----------|--------------|
| id | int64 |
| exchange | string |
| pair | string |
| asks | []depthOrder |
| bids | []depthOrder |
- Структура **DepthOrder**
```
type DepthOrder struct{
Price float64
BaseQty float64
}
```
- Таблица **order_history**
| Столбец | Тип данных |
|-----------------------|------------|
| client_name | string |
| exchange_name | string |
| label | string |
| pair | string |
| side | string |
| type | string |
| base_qty | float64 |
| price | float64 |
| algorithm_name_placed | string |
| lowest_sell_prc | float64 |
| highest_buy_prc | float64 |
| commission_quote_qty | float64 |
| time_placed | time.Time |
- Структура **HistoryOrder**
```
type HistoryOrder struct{
client_name string
exchange_name string
label string
pair string
side string
type string
base_qty float64
price float64
algorithm_name_placed string
lowest_sell_prc float64
highest_buy_prc float64
commission_quote_qty float64
time_placed time.Time
}
```
- Структура **Client**
```
type Client struct{
client_name string
exchange_name string
label string
pair string
}
```