https://github.com/llm-grading-system/platform-backend
Основной бэкенд для системы оценивания
https://github.com/llm-grading-system/platform-backend
docker fastapi granian postgresql python sqlalchemy sqlmodel uv
Last synced: about 2 months ago
JSON representation
Основной бэкенд для системы оценивания
- Host: GitHub
- URL: https://github.com/llm-grading-system/platform-backend
- Owner: LLM-Grading-System
- Created: 2025-02-23T00:16:55.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-10T21:56:39.000Z (about 1 year ago)
- Last Synced: 2025-03-10T22:31:39.668Z (about 1 year ago)
- Topics: docker, fastapi, granian, postgresql, python, sqlalchemy, sqlmodel, uv
- Language: Python
- Homepage:
- Size: 67.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Документация
### Модель данных
```mermaid
erDiagram
USERS {
UUID user_id PK
string login
string salt
string hashed_password
string role
datetime created_at
}
SESSIONS {
UUID session_id PK
UUID user_id FK
datetime expired_at
string user_agent
}
STUDENTS {
UUID student_id PK
int tg_user_id
string tg_username
string gh_username
datetime registered_at
}
TASKS {
UUID task_id PK
string name
string system_instructions
string ideas
string gh_repo_url
string level
string tags
bool is_draft
}
SUBMISSIONS {
UUID submission_id PK
UUID task_id FK
UUID student_id FK
string gh_repo_url
string code_file_name
string llm_grade
string llm_feedback
string llm_report
datetime evaluated_at
datetime created_at
}
COMPLAINTS {
UUID complaint_id PK
UUID task_id FK
UUID student_id FK
string student_request
string teacher_response
datetime created_at
}
USERS ||--o{ SESSIONS : has
STUDENTS ||--o{ SUBMISSIONS : makes
TASKS ||--o{ SUBMISSIONS : receives
TASKS ||--o{ COMPLAINTS : receives
STUDENTS ||--o{ COMPLAINTS : makes
```
## Разработка
### Переменные окружения
```bash
MODE=dev
# Postgres Envs
POSTGRES_DB=grading
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_PORT=5432
POSTGRES_HOST=localhost
# Minio Envs
MINIO_PORT=9000
MINIO_HOST=localhost
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=password
MINIO_ACCESS_KEY=access-key
MINIO_SECRET_KEY=secret-key
MINIO_BUCKET=submissions
# Kafka
KAFKA_BOOTSTRAP_SERVERS=localhost:29092
KAFKA_UI_ADMIN_LOGIN=admin
KAFKA_UI_ADMIN_PASSWORD=password
```
### Установка библиотек с uv
```bash
uv sync
```
### Запуск контейнеров для разработки
Контейнер приложения запускается в reload-режиме для разработки
```bash
docker compose -f dev.docker-compose.yaml build
docker compose -f dev.docker-compose.yaml up -d
```
### Запуск в dev-режиме
```bash
uv run fastapi dev src/app.py --port 8000
```
### Запуск форматтера и линтера с автофиксами
```bash
uv run ruff format ./src
uv run ruff check --fix src
```
### Тестирование
- GitHub owner: ashishpatel26
- GitHub repo: vectordb-recipes