Back to Overview

brackets()

team16
GREEN Service is healthy HTTP 2xx/3xx Latency < 1.5s
HTTP Status: 200
Latency: 79ms
Last Activity: 2026-03-08 00:26

Today (9:00 MSK — 9:00 MSK)

0
Commits
0
PRs Merged
0
PRs Opened
0
Issues Opened
0
Issues Closed

All Time

442
Commits
0
PRs Merged
0
PRs Opened
23
Issues Opened
0
Issues Closed
-
API Usage

Product Testing

Last tested: 2026-02-07 08:33
PDF DOCX
9.0
Overall
9
ux
9
functionality
9
performance
ux (9/10)
Интерфейс продуман до мелочей и интуитивно понятен. Навигация логичная: Как это работает, Цены, FAQ — все на своих местах. Демо-режим позволяет сразу попробовать продукт без регистрации с реальными данными. Форма регистрации имеет живую валидацию пароля с понятными индикаторами. Темная тема переключается одним кликом и выглядит отлично. Динамический заголовок, меняющий слова (таблицу/отчёт/данные, анализ/тренды/формулы) — приятная деталь. Единственный минус — мобильное меню-бургер не было протестировано, но основная навигация безупречна.
functionality (9/10)
Найдены и протестированы все основные функции: загрузка файлов (открывается диалог выбора), демо-режим с реальным анализом данных (1000 строк, 10 колонок веб-аналитики), вкладки Анализ/Данные/Графики работают корректно, автоматическая генерация 6 графиков, интерактивные диаграммы с тултипами, форма входа и регистрации с валидацией, OAuth через Яндекс ID, FAQ-аккордеон раскрывается, переключатель темной/светлой темы. Кнопка 'Скачать все' в графиках указывает на функцию экспорта. Всё работает быстро и без ошибок.
performance (9/10)
Сайт загружается мгновенно (менее 1 секунды). Переходы между страницами плавные. Консоль браузера полностью чистая — 0 ошибок и 0 предупреждений. Анимации на главной странице (данные в фоне, динамический заголовок) работают плавно без подлагиваний. Демо-страница с 1000 строками данных отображается без задержек. Переключение вкладок в демо происходит мгновенно. Отличная оптимизация.

Findings (11)

medium ux_issue Текстовое поле запроса заблокировано до загрузки файла — возможно стоит показывать placeholder с примерами запросов
medium ux_issue В FAQ ответы показываются под вопросами, но визуально не очевидно что они раскрываются (нужно кликнуть)
medium ux_issue Отсутствует индикатор загрузки при переходе между секциями (хотя переходы быстрые)
low ux_issue Weakness: Нет возможности протестировать загрузку своего файла без файла — кнопка 'Сначала загрузите файл' заблокирована
low ux_issue Weakness: Отзывы выглядят как шаблонные (не критично, но заметно)

Commits & Code Churn

31 Jan — 6 Feb 2026

PR Activity

31 Jan — 6 Feb 2026

Languages

README

Excelend

![Go](https://img.shields.io/badge/Go-1.21-00ADD8?style=for-the-badge&logo=go&logoColor=white) ![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6?style=for-the-badge&logo=typescript&logoColor=white) ![Claude](https://img.shields.io/badge/Claude-Sonnet-D97757?style=for-the-badge&logo=anthropic&logoColor=white) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=for-the-badge&logo=postgresql&logoColor=white) **AI-аналитик для ваших Excel, CSV, JSON и XML данных** [Демо](https://excelend.ru/) · [Документация](./artefacts/) · [API](./artefacts/06-api-inventory.md)

О проекте

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 — используйте свободно для любых целей.


**[Excelend](https://excelend.ru/)** — Ваши данные, понятные с первого взгляда

Events History

Total: 465 events
Page 1 of 10