This commit is contained in:
2025-08-28 12:16:36 +03:00
parent 3b238ae283
commit f16ab7133a
48 changed files with 1221 additions and 46 deletions

View File

@@ -0,0 +1,186 @@
# 🚀 Streamlit Demo для NIN Excel Parsers API
## Описание
Streamlit приложение для демонстрации работы всех API эндпоинтов NIN Excel Parsers. Предоставляет удобный веб-интерфейс для тестирования функциональности парсеров.
## Возможности
- 📤 **Загрузка файлов**: Загрузка ZIP архивов и Excel файлов
- 📊 **Сводки ПМ**: Работа с плановыми и фактическими данными
- 🏭 **Сводки СА**: Парсинг сводок центрального аппарата
-**Мониторинг топлива**: Анализ данных по топливу
- 📱 **Адаптивный интерфейс**: Удобное использование на всех устройствах
## Установка и запуск
### 1. Установка зависимостей
```bash
pip install -r requirements.txt
```
### 2. Запуск FastAPI сервера
В одном терминале:
```bash
python run_dev.py
```
### 3. Запуск Streamlit приложения
В другом терминале:
```bash
python run_streamlit.py
```
Или напрямую:
```bash
streamlit run streamlit_app.py
```
### 4. Открытие в браузере
Приложение автоматически откроется по адресу: http://localhost:8501
## Конфигурация
### Переменные окружения
```bash
# URL API сервера
export API_BASE_URL="http://localhost:8000"
# Порт Streamlit
export STREAMLIT_PORT="8501"
# Хост Streamlit
export STREAMLIT_HOST="localhost"
```
### Настройки Streamlit
Файл `.streamlit/config.toml` содержит настройки:
- Порт: 8501
- Хост: localhost
- Тема: Кастомная цветовая схема
- Безопасность: Отключены CORS и XSRF для локальной разработки
## Структура приложения
### Вкладки
1. **📤 Загрузка файлов**
- Загрузка сводок ПМ (ZIP)
- Загрузка мониторинга топлива (ZIP)
- Загрузка сводки СА (Excel)
2. **📊 Сводки ПМ**
- Данные по одному ОГ
- Данные по всем ОГ
- Выбор кодов строк и столбцов
3. **🏭 Сводки СА**
- Выбор режимов (план/факт/норматив)
- Выбор таблиц для анализа
4. **⛽ Мониторинг топлива**
- Агрегация по колонкам
- Данные за конкретный месяц
### Боковая панель
- Информация о сервере (PID, CPU, память)
- Список доступных парсеров
- Статус подключения к API
## Использование
### 1. Загрузка файлов
1. Выберите соответствующий тип файла
2. Нажмите "Загрузить"
3. Дождитесь подтверждения загрузки
### 2. Получение данных
1. Выберите нужные параметры (ОГ, коды, столбцы)
2. Нажмите "Получить данные"
3. Результат отобразится в JSON формате
### 3. Мониторинг
- Проверяйте статус API в верхней части
- Следите за логами операций
- Используйте индикаторы загрузки
## Устранение неполадок
### API недоступен
```bash
# Проверьте, запущен ли FastAPI сервер
curl http://localhost:8000/
# Проверьте порт
netstat -an | grep 8000
```
### Streamlit не запускается
```bash
# Проверьте версию Python
python --version
# Переустановите Streamlit
pip uninstall streamlit
pip install streamlit
# Проверьте порт 8501
netstat -an | grep 8501
```
### Ошибки загрузки файлов
- Убедитесь, что файл соответствует формату
- Проверьте размер файла (не более 100MB)
- Убедитесь, что MinIO запущен
## Разработка
### Добавление новых функций
1. Создайте новую вкладку в `streamlit_app.py`
2. Добавьте соответствующие API вызовы
3. Обновите боковую панель при необходимости
### Кастомизация темы
Отредактируйте `.streamlit/config.toml`:
```toml
[theme]
primaryColor = "#FF4B4B"
backgroundColor = "#FFFFFF"
# ... другие цвета
```
### Добавление новых парсеров
1. Создайте парсер в `adapters/parsers/`
2. Добавьте в `main.py`
3. Обновите Streamlit интерфейс
## Безопасность
⚠️ **Внимание**: Приложение настроено для локальной разработки
- CORS отключен
- XSRF защита отключена
- Не используйте в продакшене без дополнительной настройки
## Поддержка
При возникновении проблем:
1. Проверьте логи в терминале
2. Убедитесь, что все сервисы запущены
3. Проверьте конфигурацию
4. Обратитесь к документации API: http://localhost:8000/docs