Виндсерф сгенерировал реадми
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 10s

This commit is contained in:
2026-02-23 18:52:26 +03:00
parent 785fed4b7f
commit 8685a4ca44
6 changed files with 9274 additions and 1 deletions

282
README.md Normal file
View File

@@ -0,0 +1,282 @@
# ProdMan - Production Management System
Система управления производством для управления спецификациями (BOM), материалами и технологическими операциями.
## Обзор проекта
ProdMan - это веб-приложение на базе Django, предназначенное для управления производственными процессами, включая:
- Управление спецификациями материалов (BOM)
- Учёт и управление складскими запасами
- Технологические маршруты и операции
- Управление материалами и заготовками
- Поддержка различных типов операций (лазерная резка, механическая обработка и др.)
## Основные возможности
### 📋 Управление спецификациями (BOM Manager)
- Иерархическая структура изделий с поддержкой MPTT
- Полиморфные модели для различных типов компонентов
- Технологические маршруты с последовательностью операций
- Поддержка различных типов операций (лазерная резка, гибка, сварка и др.)
### 🏭 Управление материалами (Stock)
- Справочник марок стали и нормативных документов (ГОСТ, ТУ, ОСТ)
- Учёт различных типов заготовок (листовой прокат, трубы, профили)
- Интеграция с BOM для автоматического расчёта потребности в материалах
### 🔧 Технологические операции
- Лазерная резка листовых материалов
- Механическая обработка
- Сборочные операции
- Контроль качества
- Гибочные и сварочные работы
### 📁 Управление файлами
- Загрузка и хранение DXF файлов для лазерной резки
- Поддержка PDF документов для нормативной документации
- Медиа-файлы для чертежей и документации
## Технологический стек
- **Backend**: Django 6.0.2
- **Database**: PostgreSQL (production) / SQLite (development)
- **Frontend**: Django Templates с Bootstrap
- **Containerization**: Docker + Docker Compose
- **Web Server**: Nginx (reverse proxy)
- **WSGI Server**: Gunicorn
- **Python**: 3.12
## Структура проекта
```
Prodman/
├── bom_manager/ # Управление спецификациями
│ ├── models.py # Модели BOM, операций, изделий
│ ├── views.py # Представления
│ └── ...
├── stock/ # Управление материалами
│ ├── models.py # Модели материалов, ГОСТов, заготовок
│ ├── views.py # Представления
│ └── ...
├── core/ # Основные настройки Django
│ ├── settings.py # Конфигурация проекта
│ ├── urls.py # URL маршрутизация
│ └── ...
├── media/ # Медиа файлы
├── staticfiles/ # Статические файлы
├── templates/ # Шаблоны HTML
├── nginx/ # Конфигурация Nginx
├── docker-compose.yml # Docker конфигурация
├── Dockerfile # Docker образ приложения
└── requirements.txt # Зависимости Python
```
## Установка и запуск
### Требования
- Docker и Docker Compose
- Python 3.12+ (для локальной разработки)
- PostgreSQL (для production)
### Быстрый старт с Docker
1. **Клонирование репозитория**
```bash
git clone <repository-url>
cd Prodman
```
2. **Настройка переменных окружения**
Создайте файл `.env` на основе примера:
```bash
cp .env.example .env
```
Отредактируйте `.env` файл:
```env
ENV_TYPE=server
DB_NAME=prodman_db
DB_USER=prodman_user
DB_PASS=your_secure_password
DB_HOST=db
ALLOWED_HOSTS=localhost,your-domain.com
```
3. **Запуск приложения**
```bash
docker-compose up -d
```
4. **Выполнение миграций**
```bash
docker-compose exec web python manage.py migrate
```
5. **Создание суперпользователя**
```bash
docker-compose exec web python manage.py createsuperuser
```
6. **Сбор статических файлов**
```bash
docker-compose exec web python manage.py collectstatic --noinput
```
Приложение будет доступно по адресу: `http://localhost:8085`
### Локальная разработка
1. **Создание виртуального окружения**
```bash
python -m venv venv
source venv/bin/activate # для Windows: venv\Scripts\activate
```
2. **Установка зависимостей**
```bash
pip install -r requirements.txt
```
3. **Настройка базы данных**
По умолчанию используется SQLite. Для PostgreSQL:
```env
ENV_TYPE=dev
```
4. **Выполнение миграций**
```bash
python manage.py migrate
```
5. **Запуск сервера разработки**
```bash
python manage.py runserver
```
## Конфигурация
### Переменные окружения
- `ENV_TYPE`: Тип окружения (`local`, `dev`, `server`)
- `DB_NAME`: Имя базы данных
- `DB_USER`: Пользователь базы данных
- `DB_PASS`: Пароль базы данных
- `DB_HOST`: Хост базы данных
- `ALLOWED_HOSTS`: Разрешённые хосты через запятую
### Режимы работы
- **local**: SQLite база данных, DEBUG=True, все хосты разрешены
- **dev**: PostgreSQL база данных, DEBUG=True, все хосты разрешены
- **server**: PostgreSQL база данных, DEBUG=False, ограниченные хосты
## API и интеграция
### Основные модели
- **Item**: Базовая модель для компонентов и изделий
- **BaseOperation**: Базовый класс для технологических операций
- **BaseMaterial**: Базовая модель для материалов и заготовок
- **Gost**: Нормативные документы (ГОСТ, ТУ, ОСТ)
- **MaterialGrade**: Марки материалов
### Типы операций
- `LaserCutSheet`: Лазерная резка листовых материалов
- `BendingOperation`: Гибочные операции
- `WeldingOperation`: Сварочные операции
- `AssemblyOperation`: Сборочные операции
## Разработка
### Структура приложений
#### bom_manager
- Модели для управления спецификациями
- Технологические маршруты
- Иерархическая структура изделий
#### stock
- Модели материалов и заготовок
- Справочники ГОСТов и марок стали
- Учёт складских операций
### Добавление новых типов операций
1. Создайте новый класс, наследуемый от `BaseOperation`
2. Определите необходимые поля
3. Реализуйте метод `clean()` для валидации
4. Добавьте представление и шаблон при необходимости
Пример:
```python
class NewOperationType(BaseOperation):
custom_field = models.CharField("Пользовательское поле", max_length=100)
def clean(self):
super().clean()
# Дополнительная валидация
pass
```
## Тестирование
```bash
# Запуск всех тестов
python manage.py test
# Запуск тестов для конкретного приложения
python manage.py test bom_manager
python manage.py test stock
```
## Развертывание
### Production развертывание
1. Настройте переменные окружения в `.env` файле
2. Убедитесь, что `ENV_TYPE=server`
3. Настройте SSL сертификаты для HTTPS
4. Настройте бэкапы базы данных
5. Настройте мониторинг и логирование
### Бэкап и восстановление
```bash
# Бэкап базы данных
docker-compose exec db pg_dump -U prodman_user prodman_db > backup.sql
# Восстановление базы данных
docker-compose exec -T db psql -U prodman_user prodman_db < backup.sql
```
## Вклад в проект
1. Fork репозитория
2. Создайте feature ветку
3. Внесите изменения
4. Добавьте тесты
5. Отправьте pull request
## Лицензия
[Добавьте информацию о лицензии]
## Контакты
[Добавьте контактную информацию]
## Известные проблемы
- [Список известных проблем и их статусы]
## Roadmap
- [Планируемые функции и улучшения]
- Интеграция с CAD системами
- Автоматический расчёт себестоимости
- Мобильное приложение
- API для внешних интеграций

View File

@@ -223,7 +223,7 @@ class Item(models.Model):
help_text="Выберите тип заготовки для этой детали"
)
weight = models.FloatField("Вес", default=0, blank=True, null=True)
weight = models.FloatField("Масса", default=0, blank=True, null=True)
class Meta:
verbose_name = "Компонент"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff