mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 23:17:09 +00:00
add project info to readme
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
Инновационный сервис для проведения соревнований по анализу данных
|
Инновационный сервис для проведения соревнований по анализу данных
|
||||||
|
|
||||||
|
|
||||||
## Запуск
|
## Запуск
|
||||||
|
|
||||||
Склонируйте репозиторий и пропишите.
|
Склонируйте репозиторий и пропишите.
|
||||||
@@ -24,10 +23,49 @@ docker compose up
|
|||||||
* `admin` - логин
|
* `admin` - логин
|
||||||
* `proooooood` - пароль
|
* `proooooood` - пароль
|
||||||
|
|
||||||
|
## Как устроен проект
|
||||||
|
|
||||||
|
В проекте используются 3 основных модуля: backend, frontend и checker
|
||||||
|
|
||||||
|
1. `backend` представляет собой приложение, написанное на Django с применением [Django Ninja](https://django-ninja.dev/), который позволяет быстро и легко создавать Restful API.
|
||||||
|
|
||||||
|
Сам бекенд состоит из 2-х основных компонентов: приложений (где хранятся модели, тесты и настройки админ-панели) и основных колбеков (где хранятся схемы OpenAPI и сами ручки)
|
||||||
|
|
||||||
|
Решения на проверку отсылаются через `celery` для асинхронного взаимодействия, так как его ожидание может занять довольно длительное время.
|
||||||
|
|
||||||
|
2. `frontend` является React приложением, которое запускается через Vite. В нем также используется TypeScript для более строгой типизации. Структура приложения является стандартной для подобного вида проектов: есть отдельная папка для компонентов, страниц, стилей, работы с API.
|
||||||
|
|
||||||
|
3. `checker` - микросервис на FastAPI, созданный для безопасного асинхронного запуска посылок пользователей.
|
||||||
|
|
||||||
|
Данные в этот сервис отсылаются по специальной ручке `/execute`, которая является приватной (ее нет в документации)
|
||||||
|
|
||||||
|
Проверка заданий осуществляется через запуск кода пользователя через специально создаваемый Docker контейнер, на который выдаются следующие ресурсы:
|
||||||
|
|
||||||
|
* 1 ядро CPU
|
||||||
|
* 1 ГБ ОЗУ
|
||||||
|
|
||||||
|
Для приближения к условиям работы аналитиков в интерпритаторе Python есть следующие библиотеки:
|
||||||
|
|
||||||
|
```python
|
||||||
|
pandas==2.2.3
|
||||||
|
numpy==2.2.3
|
||||||
|
matplotlib==3.10.1
|
||||||
|
scipy==1.15.2
|
||||||
|
scikit-learn==1.6.1
|
||||||
|
seaborn==0.13.2
|
||||||
|
statsmodels==0.14.4
|
||||||
|
```
|
||||||
|
|
||||||
|
Контейнеру дается 1 минута на выполнение кода, потом - контейнер удаляется
|
||||||
|
|
||||||
## Тесты
|
## Тесты
|
||||||
|
|
||||||
Написаны unit-тесты (на базе Django TestCase) и E2E (Postman коллекция). Они покрывают flow регистрации, просмотра и участия в соревновании.
|
Написаны unit-тесты (на базе Django TestCase) и E2E (Postman коллекция). Они покрывают flow регистрации, просмотра и участия в соревновании.
|
||||||
|
|
||||||
|
Unit-тесты находятся в соответствующих приложениях, которые располагаются по пути `services/backend/apps`
|
||||||
|
|
||||||
|
JSON коллекция, в которой хранятся E2E тесты, находится по пути `img/postman_e2e.json`. Ее можно импортировать в постман, нажав на соответсвующую кнопку в интерфейсе Postman
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Ниже можно увидеть Coverage тестами бекенда данного приложения
|
Ниже можно увидеть Coverage тестами бекенда данного приложения
|
||||||
|
|||||||
Reference in New Issue
Block a user