brackets()
Today (9:00 MSK — 9:00 MSK)
All Time
Findings (11)
Commits & Code Churn
31 Jan — 6 Feb 2026PR Activity
31 Jan — 6 Feb 2026Languages
README
Excelend
О проекте
Excelend — это умный помощник для анализа табличных данных. Загрузите файл Excel, CSV, JSON или XML, и система автоматически проанализирует его, найдёт ключевые метрики и позволит задавать вопросы о данных на естественном языке.
Зачем это нужно?
- Финансовым аналитикам — быстро получить сводку по отчётам
- Маркетологам — анализировать рекламные кампании без SQL
- Менеджерам — понять данные без помощи аналитиков
- Всем — кто работает с Excel и хочет автоматизировать рутину
Возможности
Загрузка и анализ
| Функция | Описание |
|---|---|
| Drag & Drop | Перетащите файл или выберите из проводника |
| Форматы | Excel (.xlsx, .xls), CSV, JSON, XML с автоопределением кодировки |
| Размер | До 50 МБ, до 100 000 строк |
| AI-сводка | Автоматический анализ с гарантированными метриками |
| Smart Charts | 3-5 автоматических графиков на дашборде |
Чат с данными
Задавайте вопросы на русском языке:
"Какая общая сумма продаж?"
"Топ-5 менеджеров по выручке"
"Покажи динамику по месяцам в виде графика"
"Сколько уникальных клиентов за январь?"
- Полный доступ к данным — RAG-система для файлов любого размера
- Генерация графиков — визуализации прямо в чате по запросу
- Умная фильтрация — автоопределение формата дат, поиск по месяцам
- Стриминг ответов — видите ответ по мере генерации
- SQL-подобные запросы — GROUP BY, фильтры, агрегации на естественном языке
Визуализации
Создавайте графики прямо в интерфейсе:
| Тип | Применение |
|---|---|
| Столбчатая | Сравнение категорий |
| Линейная | Тренды и динамика |
| Круговая | Доли и распределение |
| С областями | Накопительные показатели |
Smart Charts: система автоматически генерирует 3-5 релевантных графиков при загрузке файла на основе анализа типов данных (категории, временные ряды, числовые колонки).
Надёжность AI
- Retry с exponential backoff — гарантированный ответ при сбоях API
- Валидация метрик — AI-выводы перепроверяются программно
- Программный fallback — базовые метрики даже при полном отказе AI
- Мониторинг качества — отслеживание % успешных AI-анализов
Аутентификация
- Яндекс OAuth — вход через Яндекс ID
- Email + пароль — регистрация с верификацией по email (Yandex SMTP)
- Анонимный доступ — загрузка 1 файла без регистрации
Экспорт
Скачайте результаты анализа:
- Excel (.xlsx) — полноценный аналитический отчёт:
- Автоматические формулы (SUM, AVERAGE, MIN, MAX)
- Интерактивные сводные таблицы (PivotTables)
- Встроенные диаграммы (bar, line, pie)
- Условное форматирование
- Дашборд с ключевыми метриками
- CSV — данные для импорта в другие системы
Админ-панель
- Дашборд — общая статистика: пользователи, файлы, AI-запросы, хранилище
- Управление пользователями — блокировка, смена ролей, просмотр активности
- Аналитика — графики регистраций, загрузок, AI-использования по дням
- Управление файлами — просмотр и модерация всех загруженных файлов
Дополнительно
- Публичное демо — предзагруженные данные для знакомства без регистрации
- Тарифы и оплата — Mini / Basic / Pro / Enterprise через YooKassa
- Yandex.Metrika — аналитика пользовательского поведения
Технологии
| ### Backend - **Go 1.21** — быстрый и надёжный - **Fiber v2** — высокопроизводительный HTTP - **PostgreSQL 16** — основная БД - **Redis 7** — сессии и кэш - **Claude API** — Claude Sonnet для анализа - **Python + openpyxl** — sandbox для генерации Excel | ### Frontend - **React 18** — современный UI - **TypeScript 5** — типобезопасность - **Vite** — быстрая сборка - **Fluent UI React v9** — Microsoft дизайн-система - **Zustand** — управление состоянием - **AG Grid** — интерактивные таблицы данных |
Архитектура
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Browser │────▶│ Fiber │────▶│ PostgreSQL │
│ React │◀────│ Go API │◀────│ Redis │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
┌──────▼──────┐
│ Claude API │
│ Sonnet │
└─────────────┘
Быстрый старт
Требования
- Go 1.21+
- Node.js 20+
- PostgreSQL 16
- Redis 7
1. Клонирование
git clone https://github.com/AI-Talent-Camp-2026/brackets.git
cd brackets
2. Настройка окружения
# Backend
cd backend
cp .env.example .env
Отредактируйте backend/.env:
# База данных
DATABASE_URL=postgres://postgres:postgres@localhost:5432/excelend?sslmode=disable
REDIS_URL=redis://localhost:6379
# Безопасность
JWT_SECRET=ваш-секретный-ключ-минимум-32-символа
# AI (Claude API)
CLAUDE_API_KEY=sk-ant-ваш-ключ-claude
# Яндекс OAuth (получить на oauth.yandex.ru)
YANDEX_CLIENT_ID=ваш-client-id
YANDEX_CLIENT_SECRET=ваш-client-secret
YANDEX_REDIRECT_URI=http://localhost:8080/api/v1/auth/yandex/callback
# URLs
FRONTEND_URL=http://localhost:5173
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
3. База данных
# Создайте БД
createdb excelend
# Миграции (выполните SQL файлы из backend/migrations/)
psql excelend < backend/migrations/001_create_users.up.sql
psql excelend < backend/migrations/002_create_refresh_tokens.up.sql
# ... и так далее до 023
4. Запуск
# Backend (терминал 1)
cd backend
go mod download
go run .
# Сервер на http://localhost:8080
# Frontend (терминал 2)
cd frontend
npm install
npm run dev
# Приложение на http://localhost:5173
Docker (альтернатива)
docker-compose up --build
API Reference
Аутентификация
POST /api/v1/auth/register # Email-регистрация
POST /api/v1/auth/login # Email-вход
GET /api/v1/auth/verify-email # Верификация email
POST /api/v1/auth/resend-verification # Повторная отправка
POST /api/v1/auth/yandex # Начать Yandex OAuth
GET /api/v1/auth/yandex/callback # OAuth callback
POST /api/v1/auth/refresh # Обновить токены
POST /api/v1/auth/logout # Выход
GET /api/v1/auth/me # Текущий пользователь
Файлы
POST /api/v1/files # Загрузка (multipart/form-data)
GET /api/v1/files # Список файлов
GET /api/v1/files/:id # Метаданные файла
GET /api/v1/files/:id/summary # AI-сводка
GET /api/v1/files/:id/columns # Структура колонок
GET /api/v1/files/:id/preview # Превью данных
DELETE /api/v1/files/:id # Удаление
Админ-панель
GET /api/v1/admin/dashboard # Статистика дашборда
GET /api/v1/admin/users # Список пользователей
PATCH /api/v1/admin/users/:id # Обновление пользователя (роль, блокировка)
GET /api/v1/admin/files # Все файлы в системе
DELETE /api/v1/admin/files/:id # Удаление файла
GET /api/v1/admin/analytics # Аналитика по дням
Чат с данными
POST /api/v1/files/:id/chat # Отправка вопроса (SSE streaming)
GET /api/v1/files/:id/chat/history # История сообщений
GET /api/v1/files/:id/chat/suggestions # Предложенные вопросы
POST /api/v1/chat/messages/:id/feedback # Оценка ответа
Визуализации
POST /api/v1/files/:id/visualizations # Создание графика
GET /api/v1/files/:id/visualizations # Список графиков
GET /api/v1/visualizations/:id # Данные графика
GET /api/v1/visualizations/:id/image # PNG изображение
Экспорт
POST /api/v1/files/:id/export # Создание экспорта
GET /api/v1/exports/:id # Статус экспорта
GET /api/v1/exports/:id/download # Скачивание файла
Структура проекта
brackets/
├── backend/
│ ├── handlers/ # HTTP обработчики
│ │ ├── auth.go # Аутентификация
│ │ ├── files.go # Работа с файлами
│ │ ├── chat.go # AI чат
│ │ ├── visualizations.go
│ │ └── exports.go
│ ├── middleware/
│ │ ├── auth.go # JWT проверка
│ │ ├── anonymous.go # Анонимные сессии
│ │ └── ratelimit.go # Лимиты запросов
│ ├── models/ # Модели данных
│ ├── services/
│ │ ├── ai/ # Claude API клиент
│ │ ├── chat/ # Обработка чат-запросов
│ │ ├── chart/ # Генерация графиков
│ │ ├── export/ # Excel с формулами/сводными
│ │ ├── metrics/ # Расчёт метрик
│ │ ├── parser/ # Парсинг файлов (xlsx/csv/json/xml)
│ │ ├── rag/ # RAG для больших файлов
│ │ ├── summary/ # AI-сводка
│ │ ├── validation/ # Валидация AI-ответов
│ │ └── workspace/ # Python sandbox executor
│ ├── store/ # PostgreSQL репозитории
│ ├── migrations/ # SQL миграции
│ ├── main.go
│ └── go.mod
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── ChatInterface.tsx # Чат с AI
│ │ │ ├── ChatChart.tsx # Графики в чате
│ │ │ ├── ChartBuilder.tsx # Построитель графиков
│ │ │ ├── charts/ # Smart Charts
│ │ │ ├── FileUpload.tsx
│ │ │ └── ExportModal.tsx
│ │ ├── pages/
│ │ │ ├── Landing.tsx
│ │ │ ├── Dashboard.tsx
│ │ │ ├── Analysis.tsx
│ │ │ ├── Files.tsx
│ │ │ ├── VerifyEmail.tsx
│ │ │ ├── Terms.tsx
│ │ │ ├── Privacy.tsx
│ │ │ └── admin/ # Админ-панель
│ │ │ ├── AdminDashboard.tsx
│ │ │ ├── AdminUsers.tsx
│ │ │ ├── AdminFiles.tsx
│ │ │ └── AdminAnalytics.tsx
│ │ ├── hooks/ # React хуки
│ │ ├── lib/ # API клиенты
│ │ ├── store/ # Zustand
│ │ └── types/ # TypeScript типы
│ ├── package.json
│ └── vite.config.ts
│
├── artefacts/ # Проектная документация
│ ├── 01-nfr.md # Нефункциональные требования
│ ├── 04-c4-architecture.md
│ ├── 05-er-diagram.md
│ ├── 06-api-inventory.md
│ └── 09-wireframes.md
│
├── docker-compose.yml
├── docker-compose.prod.yml
├── CLAUDE.md # Инструкции для AI
├── DEVGUIDE.md # Гайд по агентной разработке
└── README.md
Лимиты и ограничения
| Параметр | Значение |
|---|---|
| Размер файла | 50 МБ |
| Строк в файле | 100 000 |
| AI запросов | 20/мин на пользователя |
| Хранение файлов | 7 дней |
| Бесплатные загрузки | 1 файл для новых пользователей |
| Анонимные сессии | 1 файл, 24 часа |
| Форматы файлов | XLSX, XLS, CSV, JSON, XML |
Прогресс реализации
| # | Фича | Статус | Описание |
|---|---|---|---|
| 001 | OAuth Auth | Done | Yandex OAuth, JWT, сессии |
| 002 | File Upload | Done | Загрузка, парсинг, превью (xlsx/csv/json/xml) |
| 003 | AI Chat | Done | Чат с данными, streaming |
| 004 | Visualizations | Done | Интерактивные графики |
| 005 | Export | Done | Excel/CSV экспорт |
| 006 | AI Reliability | Done | Retry, валидация, fallback, мониторинг |
| 007 | Excel Formulas | Done | Формулы, сводные таблицы, диаграммы |
| 008 | Smart Charts | Done | Автографики на дашборде |
| 009 | Enhanced Chat | Done | RAG, фильтры, графики в чате |
| — | Email Auth | Done | Регистрация + верификация по email |
| — | Demo Mode | Done | Публичное демо с предзагруженными данными |
| — | YooKassa | Done | Оплата тарифов Mini/Basic/Pro/Enterprise |
| — | Landing Page | Done | Анимации, FAQ, pricing, testimonials |
| — | Security Audit | Done | Исправление OWASP уязвимостей |
| — | Admin Panel | Done | Дашборд, управление пользователями, аналитика |
Дорожная карта
В планах
- [ ] Интеграция с Google Sheets
- [ ] Telegram бот для быстрых запросов к данным
- [ ] Командные workspace с ролями
- [ ] Self-hosted версия (Docker image)
Команда
Проект разработан в рамках AI Talent Camp 2026.
| Участник | GitHub | |
|---|---|---|
![]() |
Босина Анастасия | @Bosinaa |
![]() |
Кушнир Алексей | @mr-kushnir |
![]() |
Москаленко Ярослав | @yaroslav711 |
Лицензия
MIT License — используйте свободно для любых целей.


