Skip to content

Wild-sergunys/flowmodel

Repository files navigation

FLOWMODEL - РАСЧЁТ ПАРАМЕТРОВ КАНАЛА

Go Report Card Test

Веб-приложение для моделирования неизотермического течения аномально-вязких материалов в канале с подвижной крышкой.

БЫСТРЫЙ СТАРТ

git clone https://github.com/Wild-sergunys/flowmodel.git
cd flowmodel
cp .env.example .env
docker compose up -d

Учётные данные по умолчанию:

  • Логин: admin
  • Пароль: admin123

СТЕК

Компонент Технология
Backend Go, стандартный net/http, JWT-аутентификация
База данных MySQL 8.0
Фронтенд Встроенные шаблоны, минимальный JS (Chart.js, Three.js)
Деплой Docker, Docker Compose

ВОЗМОЖНОСТИ

  • Моделирование течения аномально-вязких материалов в канале
  • Расчёт производительности (кг/ч), температуры и вязкости по длине канала
  • Учёт 8 параметров материала (энергия активации, индекс течения, плотность и др.)
  • 2D и 3D визуализация результатов
  • Валидация входных параметров
  • Сохранение истории расчётов
  • Экспорт результатов в Excel (.xlsx) и JSON
  • Административная панель: управление материалами, параметрами и пользователями
  • Аутентификация и разделение ролей (admin, researcher)
  • Rate limiter на попытки входа (защита от брутфорса)
  • Graceful shutdown сервера

ДОКУМЕНТАЦИЯ API

АРХИТЕКТУРА

.
├── api/                    # OpenAPI спецификация и документация API
├── cmd/server/             # Точка входа
├── internal/
│   ├── config/             # Загрузка конфигурации из .env
│   ├── database/           # Подключение к MySQL, миграции
│   ├── handler/            # HTTP-обработчики (auth, calculation, admin, results)
│   ├── middleware/         # JWT-авторизация, rate limiter
│   ├── model/              # Структуры данных
│   ├── repository/         # Доступ к БД
│   ├── service/            # Бизнес-логика (auth, расчёт, Excel-отчёты)
│   └── validator/          # Валидация входных параметров
├── migrations/             # SQL-миграции
└── web/                    # Фронтенд (HTML/CSS/JS)
    ├── static/             # CSS, JavaScript
    └── templates/          # HTML-шаблоны

Слои: handler -> service -> repository. Handler принимает HTTP-запросы, service содержит бизнес-логику, repository работает с БД.

ТЕСТЫ

Юнит-тесты покрывают:

  • Валидацию входных параметров (8 кейсов)
  • Rate limiter (блокировка, сброс, истечение, разные IP)
  • Аутентификацию (успех, неверный пароль, пользователь не найден)
  • Фронтенд (страницы, статика, Content-Type)
go test ./internal/... ./web/ -v

ФИЗИЧЕСКАЯ МОДЕЛЬ

Приложение моделирует течение расплава полимера в канале экструдера с подвижной верхней крышкой:

  • Геометрия канала: ширина W, глубина H, длина L
  • Режимные параметры: скорость крышки Vu, температура крышки Tu
  • Материал описывается 8 параметрами:
    • mu0 - коэффициент консистенции (Па·с^n)
    • Ea - энергия активации вязкого течения (Дж/моль)
    • Tr - температура приведения (°С)
    • n - индекс течения (0 < n < 1)
    • alpha_u - коэффициент теплоотдачи (Вт/(м²·°С))
    • density - плотность (кг/м³)
    • heat_capacity - удельная теплоёмкость (Дж/(кг·°С))
    • melting_temp - температура плавления (°С)
  • Учитывается диссипативный нагрев от вязкого трения
  • Расчёт профиля температур и вязкости по длине канала (метод шагов)
  • Результат: производительность (кг/ч), температура и вязкость продукта на выходе

ЛИЦЕНЗИЯ

MIT

About

Моделирование неизотермического течения аномально-вязких материалов

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors