Веб-приложение на Flask для оценки эффективности инжиниринга по проектам на основе файла Engineering Efficiency Measurement.xlsx.
- хранит список проектов и их метаданные;
- поддерживает два режима оценки:
PLANиFACT; - берет структуру факторов, границы и веса прямо из Excel-модели;
- считает итоговый
PLAN-индекс по логике листаengineering efficiency PLAN; - считает итоговый
FACT-индекс по логике листаengineering efficiency FACT; - показывает статистику по группе проектов, периоду и специалисту.
- Пользователь создает или открывает проект.
- Заполняет карточку проекта:
- наименование;
- код;
- группа;
- стадия;
- даты начала и окончания;
- руководитель проекта;
- ГИП;
- ответственный за проектирование.
- На вкладке
PLANвыбирает качественные оценки факторов. - Приложение автоматически подставляет числовые значения и считает итоговый показатель.
- На вкладке
FACTвводит фактические достигнутые значения. - На вкладке
Статистикафильтрует сохраненные проекты и смотрит агрегированные значения.
pip install -r requirements.txt
python3 app.pyПосле запуска приложение доступно по адресу http://127.0.0.1:5000.
Для Windows добавлен отдельный desktop entrypoint:
- desktop_app.py
- EngEstimate.spec
- requirements-windows-build.txt
- scripts/build_windows.bat
- scripts/build_windows.ps1
Ожидаемый сценарий:
- На Windows-машине установить зависимости сборки.
- Собрать приложение через PyInstaller.
- Получить
dist/EngEstimate.exe. - Запускать
EngEstimate.exeкак обычное desktop-приложение.
При запуске .exe приложение:
- поднимает локальный сервер на свободном порту;
- открывает встроенное desktop-окно через webview;
- хранит пользовательские данные отдельно от bundled-файлов.
На Windows сохраненные проекты лежат в %APPDATA%\\EngEstimate\\projects.json.
app.py Flask entrypoint and API
desktop_app.py Windows-friendly desktop EXE entrypoint
EngEstimate.spec PyInstaller spec for Windows build
eng_efficiency/
workbook.py XLSX parser and model extraction
calculator.py PLAN / FACT calculations
storage.py Local JSON project storage
statistics.py Aggregation and filtering
runtime.py Runtime paths for local/frozen execution
data/projects.json Saved projects
templates/index.html UI shell
static/css/styles.css UI styles
static/js/script.js Frontend logic
scripts/build_windows.* Windows build scripts
GET /api/config- вернуть модель факторов и показателей, извлеченную из Excel.GET /api/projects- вернуть список проектов.GET /api/projects/<id>- вернуть один проект.POST /api/projects- создать или обновить проект.POST /api/projects/<id>/plan- пересчитать и сохранитьPLAN.POST /api/projects/<id>/fact- пересчитать и сохранитьFACT.GET /api/statistics- получить статистику по фильтрамproject_group,specialist,date_from,date_to.
- хранение локальное, без базы данных;
- нет авторизации и многопользовательского режима;
- интерфейс не пытается повторить Excel 1-в-1;
- приложение ориентировано на MVP и локальную эксплуатацию.
Подробные материалы лежат в каталоге docs/:
docs/README.md- индекс документации;docs/PROJECT_OVERVIEW.md- обзор продукта;docs/ARCHITECTURE.md- архитектура;docs/API.md- API;docs/CALCULATION_MODEL.md- расчетная модель;docs/DEVELOPMENT.md- разработка и сопровождение.docs/WINDOWS_EXE.md- сборка и запуск Windows.exe.