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
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 sync
Контейнер приложения запускается в reload-режиме для разработки
docker compose -f dev.docker-compose.yaml build
docker compose -f dev.docker-compose.yaml up -d
uv run fastapi dev src/app.py --port 8000
uv run ruff format ./src
uv run ruff check --fix src
- GitHub owner: ashishpatel26
- GitHub repo: vectordb-recipes