8685a4ca44c825c97f598c7ccb625bf3fbacea56
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 10s
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
-
Клонирование репозитория
git clone <repository-url> cd Prodman -
Настройка переменных окружения
Создайте файл
.envна основе примера:cp .env.example .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 -
Запуск приложения
docker-compose up -d -
Выполнение миграций
docker-compose exec web python manage.py migrate -
Создание суперпользователя
docker-compose exec web python manage.py createsuperuser -
Сбор статических файлов
docker-compose exec web python manage.py collectstatic --noinput
Приложение будет доступно по адресу: http://localhost:8085
Локальная разработка
-
Создание виртуального окружения
python -m venv venv source venv/bin/activate # для Windows: venv\Scripts\activate -
Установка зависимостей
pip install -r requirements.txt -
Настройка базы данных
По умолчанию используется SQLite. Для PostgreSQL:
ENV_TYPE=dev -
Выполнение миграций
python manage.py migrate -
Запуск сервера разработки
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
- Модели материалов и заготовок
- Справочники ГОСТов и марок стали
- Учёт складских операций
Добавление новых типов операций
- Создайте новый класс, наследуемый от
BaseOperation - Определите необходимые поля
- Реализуйте метод
clean()для валидации - Добавьте представление и шаблон при необходимости
Пример:
class NewOperationType(BaseOperation):
custom_field = models.CharField("Пользовательское поле", max_length=100)
def clean(self):
super().clean()
# Дополнительная валидация
pass
Тестирование
# Запуск всех тестов
python manage.py test
# Запуск тестов для конкретного приложения
python manage.py test bom_manager
python manage.py test stock
Развертывание
Production развертывание
- Настройте переменные окружения в
.envфайле - Убедитесь, что
ENV_TYPE=server - Настройте SSL сертификаты для HTTPS
- Настройте бэкапы базы данных
- Настройте мониторинг и логирование
Бэкап и восстановление
# Бэкап базы данных
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
Вклад в проект
- Fork репозитория
- Создайте feature ветку
- Внесите изменения
- Добавьте тесты
- Отправьте pull request
Лицензия
[Добавьте информацию о лицензии]
Контакты
[Добавьте контактную информацию]
Известные проблемы
- [Список известных проблем и их статусы]
Roadmap
- [Планируемые функции и улучшения]
- Интеграция с CAD системами
- Автоматический расчёт себестоимости
- Мобильное приложение
- API для внешних интеграций
Description
Languages
Python
93.3%
HTML
5.1%
Dockerfile
1.1%
Shell
0.5%