mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 20:57:09 +00:00
refactor: global refactoring
This commit is contained in:
@@ -15,7 +15,7 @@ docker compose up
|
||||
* `/` - интерфейс
|
||||
* `/api/v1/docs` - swagger-ui документация
|
||||
* `/admin/` - админка
|
||||
* `/admin/grafana` - графана
|
||||
* `/admin/grafana` - Grafana
|
||||
* `/docs` - обучающие материалы по анализу данных
|
||||
|
||||
После запуска по методу выше создается пользователь в админке (`/admin/`) с данными ниже:
|
||||
@@ -23,6 +23,11 @@ docker compose up
|
||||
* `admin` - логин
|
||||
* `prooooooood` - пароль
|
||||
|
||||
Данные для Grafana:
|
||||
|
||||
* `admin` - логин
|
||||
* `proooooood` - пароль
|
||||
|
||||
## Как устроен проект
|
||||
|
||||
В проекте используются 3 основных модуля: backend, frontend и checker
|
||||
@@ -31,20 +36,20 @@ docker compose up
|
||||
|
||||
Сам бекенд состоит из 2-х основных компонентов: приложений (где хранятся модели, тесты и настройки админ-панели) и основных колбеков (где хранятся схемы OpenAPI и сами ручки)
|
||||
|
||||
Решения на проверку отсылаются через `celery` для асинхронного взаимодействия, так как его ожидание может занять довольно длительное время.
|
||||
Решения на проверку отсылаются через `celery` для асинхронного взаимодействия.
|
||||
|
||||
2. `frontend` является React приложением, которое запускается через Vite. В нем также используется TypeScript для более строгой типизации. Структура приложения является стандартной для подобного вида проектов: есть отдельная папка для компонентов, страниц, стилей, работы с API.
|
||||
|
||||
3. `checker` - микросервис на FastAPI, созданный для безопасного асинхронного запуска посылок пользователей.
|
||||
|
||||
Данные в этот сервис отсылаются по специальной ручке `/execute`, которая является приватной (ее нет в документации)
|
||||
Данные в этот сервис отсылаются по специальной ручке `/execute`.
|
||||
|
||||
Проверка заданий осуществляется через запуск кода пользователя через специально создаваемый Docker контейнер, на который выдаются следующие ресурсы:
|
||||
Проверка заданий осуществляется через запуск кода пользователя через Docker контейнер, на который выдаются следующие ресурсы:
|
||||
|
||||
* 1 ядро CPU
|
||||
* 1 ГБ ОЗУ
|
||||
* 50% одного ядра
|
||||
* 100 МБ ОЗУ
|
||||
|
||||
Для приближения к условиям работы аналитиков в интерпритаторе Python есть следующие библиотеки:
|
||||
Решению доступны следующие библиотеки для работы с данными:
|
||||
|
||||
```python
|
||||
pandas==2.2.3
|
||||
@@ -56,7 +61,7 @@ docker compose up
|
||||
statsmodels==0.14.4
|
||||
```
|
||||
|
||||
Контейнеру дается 1 минута на выполнение кода, потом - контейнер удаляется
|
||||
Контейнеру дается 1 минута на выполнение кода, потом - контейнер удаляется.
|
||||
|
||||
## Тесты
|
||||
|
||||
@@ -64,10 +69,12 @@ docker compose up
|
||||
|
||||
Unit-тесты находятся в соответствующих приложениях, которые располагаются по пути `services/backend/apps`
|
||||
|
||||
JSON коллекция, в которой хранятся E2E тесты, находится по пути `img/postman_e2e.json`. Ее можно импортировать в постман, нажав на соответсвующую кнопку в интерфейсе Postman
|
||||
Postman коллекция, c E2E тестами: [tests/postman_collection.json](./tests/postman_collection.json)
|
||||
|
||||

|
||||
Запуск Postman коллекции:
|
||||
|
||||
Ниже можно увидеть Coverage тестами бекенда данного приложения
|
||||

|
||||
|
||||

|
||||
Покрытие тестами бекенда данного приложения:
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user