Платформа для управления совместными проектами СберЛаб и НГУ. Единая экосистема, объединяющая студентов, менторов из Сбера, преподавателей ВУЗа и HR-специалистов. Решает проблему коммуникации, бюрократии и поиска талантов.
Это не просто доска задач. Это ERP-система для управления полным жизненным циклом студенческих проектов: от идеи (сгенерированной AI) до трудоустройства в Сбер.
Ключевые преимущества:
- AI-ассистент (GigaChat): Помогает менторам писать ТЗ и формулировать научную новизну для дипломов.
- Верификация ВУЗом: Деканат подтверждает средний балл (GPA) студентов, исключая фейковые данные.
- Talent Pipeline для HR: Аналитический дашборд для поиска лучших студентов по стеку и рейтингу.
- Юридическая безопасность: Встроенный флоу подписания NDA и генерация документов (PDF).
- Язык: Python 3.11
- Фреймворк: Django + Django REST Framework
- AI: GigaChat API (Сбер)
- База данных: SQLite (для портативности) / PostgreSQL (Ready)
- Безопасность: Token Authentication, CORS headers
- Core: React, Vite
- UI/UX: CSS Modules, Swiper (Галерея), React-Quill (Rich Text)
- Аналитика: Recharts (Графики и диаграммы)
- PDF: jsPDF (Генерация договоров)
- Контейнеризация: Docker, Docker Compose
- Web Server: Nginx (Reverse Proxy, Static files)
graph TD
%% Стили
classDef client fill:#f9f,stroke:#333,stroke-width:2px,color:black;
classDef nginx fill:#21A038,stroke:#333,stroke-width:2px,color:white;
classDef frontend fill:#61DAFB,stroke:#333,stroke-width:2px,color:black;
classDef backend fill:#092E20,stroke:#333,stroke-width:2px,color:white;
classDef db fill:#333,stroke:#333,stroke-width:2px,color:white;
classDef ext fill:#ddd,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5,color:black;
User((👤 Пользователь)):::client
GigaChat[🤖 GigaChat API]:::ext
subgraph Docker_Compose [🐳 Docker Compose Host]
direction TB
subgraph Nginx_Container [Container: Nginx]
Proxy[🔄 Reverse Proxy /80]:::nginx
Static[📂 Static Files /dist]:::frontend
end
subgraph Backend_Container [Container: Django]
API[⚙️ API Server /8000]:::backend
Media[🖼️ Media Files]:::backend
end
DB[(🗄️ SQLite3 / File)]:::db
end
%% Исправленный блок связей (добавлены кавычки)
User -->|HTTP Request| Proxy
Proxy -->|"/ (Root)"| Static
Proxy -->|"/api or /admin"| API
Proxy -->|/media| Media
API -->|Read/Write| DB
API -.->|JSON Request| GigaChat
(Схема взаимодействия: Nginx -> React Static / Django API -> Database / GigaChat)
flowchart TD
%% Стили
classDef start fill:#21A038,stroke:#333,stroke-width:2px,color:white;
classDef proc fill:#fff,stroke:#333,stroke-width:1px,color:black;
classDef decision fill:#FFD700,stroke:#333,stroke-width:1px,color:black;
classDef stop fill:#FF4B4B,stroke:#333,stroke-width:2px,color:white;
Start([🚀 Регистрация]):::start --> Verif{Проверен<br>ВУЗом?}:::decision
Verif -- Нет --> Wait[⏳ Ожидание верификации Деканатом]:::proc
Wait --> Verif
Verif -- Да --> Browse[🔍 Поиск проекта в Витрине]:::proc
Browse --> Apply[📝 Подача заявки<br>+ Мотивационное письмо]:::proc
Apply --> MentorApprove{Ментор<br>одобрил?}:::decision
MentorApprove -- Нет --> Browse
MentorApprove -- Да --> IsNDA{Нужен<br>NDA?}:::decision
IsNDA -- Да --> SignNDA[✍️ Подписание NDA в интерфейсе]:::proc
SignNDA --> Access[🔓 Доступ к Git/Jira]:::proc
IsNDA -- Нет --> Access
Access --> Work[💻 Работа над проектом]:::proc
Work --> Complete{Проект<br>завершен?}:::decision
Complete -- Да --> Grading[⭐ Ментор ставит оценку и отзыв]:::proc
Grading --> Portfolio[🏆 Проект попадает в Портфолио]:::start
Portfolio --> HR[💼 Виден в базе HR]:::proc
(Регистрация -> Верификация -> Подача заявки -> Одобрение -> NDA -> Работа -> Оценка -> Портфолио)
erDiagram
User ||--o{ Project : "Creates / Mentors"
User ||--o{ Participation : "Joins"
User ||--o{ Comment : "Writes"
Project ||--o{ Participation : "Has members"
Project ||--o{ Resource : "Contains links"
Project ||--o{ Comment : "Has questions"
User {
int id
string role "student/mentor/teacher/hr"
float gpa "Средний балл"
bool is_verified
string tech_stack
}
Project {
int id
string title
string status "open/in_progress/done"
bool is_nda_required
bool is_diploma_allowed
text scientific_value "AI Generated"
}
Participation {
int id
string status "pending/accepted"
bool is_nda_signed
int grade "Оценка ментора"
text review "Отзыв"
}
Resource {
string title "GitLab/Jira"
string url "Hidden until NDA"
}
(Связи между Users, Projects, Participations, Comments)
Самый быстрый способ запустить проект для проверки жюри. Требуется установленный Docker Desktop.
-
Скачайте проект и перейдите в папку:
git clone https://gitlab.sberlab.nsu.ru/s.mariskin/sberlab_hack/ cd sberlab_hack -
Создайте
.env:cp .env.example .env
Заполните
GIGACHAT_CREDENTIALSв.env. Без этого AI-функции вернут ошибку конфигурации. -
Запустите контейнеры:
docker compose up --build
При старом Docker Compose используйте
docker-compose up --build. -
Откройте в браузере: Перейдите по адресу: http://localhost
-
Остановка: Нажмите
Ctrl+Cили выполнитеdocker compose down.
Примечание:
.envне коммитится в репозиторий. Для передачи настроек используйте.env.example.
Если вы хотите запустить проект локально без Докера.
- Python 3.11+
- Node.js 20+ (обязательно для Vite 6)
cp .env.example .env
# Заполните GIGACHAT_CREDENTIALS в .env
cd backend
python -m venv venv
source venv/bin/activate
# Windows: venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverБэкенд будет доступен по адресу: http://127.0.0.1:8000
cd frontend/frontend
npm install
npm run devФронтенд будет доступен по адресу: http://localhost:5173
Для удобства проверки в базе уже созданы пользователи с разными ролями:
| Роль | Логин | Пароль | Описание |
|---|---|---|---|
| Admin | admin |
admin |
Полный доступ (Django Admin) |
| Ментор | mentor |
Aa12345678! |
Создание проектов, управление командой |
| Студент | student |
Aa12345678 |
Подача заявок, портфолио |
| HR | hr |
Aa12345678 |
Доступ к Talent Pool и аналитике |
| Деканат | teacher |
Aa12345678 |
Верификация студентов |
-
Капитанская рубка (Ментор):
- Визуализация команды слотами (как в лобби игр).
- Управление жизненным циклом проекта (Запуск, Пауза, Архив).
- Добавление скрытых ресурсов (ссылки на GitLab/Jira), доступных только после NDA.
-
AI-Генерация:
- Нажмите "Создать проект" -> введите идею -> нажмите "🪄 Заполнить".
- GigaChat сгенерирует название, стек, описание и научную новизну.
-
Аналитика:
- Красивые графики Recharts: популярность технологий, воронка статусов проектов.
- KPI метрики лаборатории.
-
Безопасность и Валидация:
- Студент не может сам себе "нарисовать" оценки. Только роль
teacherможет подтвердить GPA. - Студент не видит ссылок на код, пока не нажмет "Подписать NDA".
- Студент не может сам себе "нарисовать" оценки. Только роль
