Files
ProdMan/README.md
ackFromRedmi 8685a4ca44
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 10s
Виндсерф сгенерировал реадми
2026-02-23 18:52:26 +03:00

283 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 для внешних интеграций