Primakov Alexandr Alexandrovich 3a65307fd0
All checks were successful
platform/bro-js/challenge-pl/pipeline/head This commit looks good
init brojs
2025-11-02 17:44:37 +03:00

179 lines
5.4 KiB
Markdown
Raw 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.

# Challenge Service - Frontend Documentation
Документация для фронтенд-разработчиков и преподавателей.
## 📚 Документы
### Для всех фронтенд-разработчиков
1. **[CHALLENGE_FRONTEND_GUIDE.md](./CHALLENGE_FRONTEND_GUIDE.md)**
- Основное руководство по интеграции
- Сценарии использования
- Структуры данных (TypeScript)
- API взаимодействие
- Готовые компоненты React
- Best practices
2. **[CHALLENGE_REACT_EXAMPLE.md](./CHALLENGE_REACT_EXAMPLE.md)**
- Полный пример React + TypeScript приложения
- Готовый код компонентов
- Custom hooks
- State management
- Стили
3. **[CHALLENGE_ANALYTICS_SUMMARY.md](./CHALLENGE_ANALYTICS_SUMMARY.md)**
- Метрики для отслеживания
- Дашборды (Personal, Admin)
- Визуализация данных
- Real-time уведомления
- A/B тестирование
### Для преподавателей 🔒
4. **[TEACHER_GUIDE.md](./TEACHER_GUIDE.md)**
- Работа со скрытыми инструкциями для LLM
- Настройка Keycloak
- Создание и редактирование заданий
- UI компоненты для преподавателей
- Best practices
- Примеры реальных сценариев
## 🚀 Быстрый старт
### Для студентов (обычные пользователи)
1. Прочитайте [CHALLENGE_FRONTEND_GUIDE.md](./CHALLENGE_FRONTEND_GUIDE.md)
2. Посмотрите примеры в [CHALLENGE_REACT_EXAMPLE.md](./CHALLENGE_REACT_EXAMPLE.md)
3. Используйте готовые компоненты как основу
### Для преподавателей
1. Прочитайте [TEACHER_GUIDE.md](./TEACHER_GUIDE.md) 🔒
2. Настройте Keycloak (роль `teacher`)
3. Используйте скрытые инструкции для улучшения проверки
## 🎯 Ключевые особенности
### Для студентов
- ✅ Простая аутентификация (nickname)
- ✅ Просмотр цепочек с прогрессом
- ✅ Отправка решений
- ✅ Real-time отслеживание проверки
- ✅ Персональная статистика
- ✅ Feedback от AI
### Для преподавателей 🔒
- ✅ Создание заданий через Keycloak
- ✅ Скрытые инструкции для LLM
- ✅ Управление цепочками
- ✅ Просмотр статистики
- ✅ Контроль качества проверок
## 📊 Структура данных
### Task (с учетом ролей)
```typescript
// Для студента
interface ChallengeTask {
_id: string
title: string
description: string // Markdown
createdAt: string
}
// Для преподавателя (teacher)
interface ChallengeTask {
_id: string
title: string
description: string // Markdown
hiddenInstructions: string // 🔒 Только для преподавателей
creator: object // 🔒 Только для преподавателей
createdAt: string
}
```
## 🔐 Авторизация
### Студенты
```typescript
// Простая регистрация по nickname
POST /api/challenge/auth
{ "nickname": "student123" }
```
### Преподаватели
```typescript
// Запросы с токеном Keycloak
headers: {
'Authorization': 'Bearer <keycloak_token>'
}
// Требуется роль 'teacher' в клиенте 'journal'
```
## 🎨 UI Components
### Для студентов
- `AuthForm` - вход по nickname
- `ChainList` - список цепочек
- `TaskView` - просмотр и решение
- `CheckStatus` - отслеживание проверки
- `ResultView` - результат
- `UserStats` - статистика
### Для преподавателей 🔒
- `TeacherTaskForm` - создание с hiddenInstructions
- `TaskCard` - с индикацией скрытых инструкций
- `AdminDashboard` - полная статистика
## 📖 Примеры использования
### Создание задания (преподаватель)
```typescript
const task = await createTask({
title: "Реализовать сортировку",
description: "# Задание\n\nНапишите функцию...",
hiddenInstructions: "Проверь сложность алгоритма O(n log n)" // 🔒
})
```
### Отправка решения (студент)
```typescript
const { queueId } = await submitSolution(userId, taskId, result)
// Polling
const submission = await pollCheckStatus(queueId, (status) => {
console.log('Status:', status.status)
})
```
## 🛠️ Технологии
- React + TypeScript
- Keycloak для авторизации преподавателей
- Context API / Redux для state
- React Markdown
- Fetch API
## 📚 Дополнительные ресурсы
- [API документация](../CHALLENGE_API_README.md)
- [Архитектура системы](../CHALLENGE_ARCHITECTURE.md)
- [Быстрый старт](../CHALLENGE_QUICK_START.md)
---
**Версия:** 1.0.0
**Дата:** 29 октября 2025
**Статус:** ✅ Production Ready