Веб-приложение для моделирования неизотермического течения аномально-вязких материалов в канале с подвижной крышкой.
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/ # 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