Add files via upload

v1.3.0
This commit is contained in:
cyrteL
2025-07-28 18:24:57 +03:00
committed by GitHub
parent bd7afd54b5
commit e572c34e99
13 changed files with 632 additions and 248 deletions

189
README.md
View File

@ -12,6 +12,8 @@
- **Поиск**: быстрый поиск позиций и операций
- **Отчеты**: генерация различных отчетов
- **Экспорт данных**: выгрузка в CSV и JSON форматах
- **Настраиваемые категории**: полный CRUD для категорий позиций
- **Hover-навигация**: выпадающее меню категорий при наведении
### Система безопасности
- **Многоуровневая авторизация** с разными ролями
@ -21,6 +23,7 @@
- **Проверка прав доступа** для каждой операции
- **Безопасная обработка ошибок** с информативными уведомлениями
- **URL валидация** параметров и фильтров
- **Автоматическое скрытие элементов** в зависимости от ролей
### Уровни доступа
@ -29,21 +32,25 @@
- Управление пользователями
- Настройка системы
- Просмотр всех отчетов
- Удаление позиций и категорий
#### 👔 Менеджер (manager/manager123)
- Чтение и запись данных
- Управление товарами
- Оформление операций
- Просмотр отчетов
- Создание и редактирование категорий
#### 👷 Оператор (operator/operator123)
- Только чтение данных
- Просмотр каталога и истории
- Экспорт данных
- Ограниченный доступ к функциям
#### 👁️ Наблюдатель (viewer/viewer123)
- Ограниченный просмотр
- Только чтение данных
- Экспорт данных
- Минимальный доступ
## 📁 Структура проекта
@ -56,13 +63,15 @@ warehouse-system/
├── history.html # История операций
├── search.html # Поиск
├── profile.html # Профиль пользователя
├── admin/
│ └── categories.html # Управление категориями
├── css/
│ └── style.css # Основные стили
├── js/
│ ├── auth.js # Система авторизации
│ ├── auth.js # Система авторизации и прав доступа
│ ├── main.js # Основная логика
│ ├── warehouse.js # Управление складом
│ ├── catalog.js # Каталог товаров (с проверкой прав доступа)
│ ├── catalog.js # Каталог товаров
│ ├── history.js # История операций
│ ├── search.js # Поиск
│ ├── profile.js # Профиль пользователя
@ -82,7 +91,22 @@ warehouse-system/
## 🚀 Быстрый старт
### 1. Первый вход
### 1. Установка
1. Скачайте или клонируйте проект
2. Откройте `index.html` в браузере
3. Или запустите локальный сервер:
```bash
# Python 3
python -m http.server 8000
# Node.js
npx http-server
# PHP
php -S localhost:8000
```
### 2. Первый вход
1. Откройте `login.html`
2. Используйте тестовые учетные записи:
- **Администратор**: `admin` / `admin123`
@ -90,35 +114,38 @@ warehouse-system/
- **Оператор**: `operator` / `operator123`
- **Наблюдатель**: `viewer` / `viewer123`
### 2. Начальная настройка
### 3. Начальная настройка
1. Войдите как администратор
2. Добавьте первые товары через главную страницу
3. Настройте категории товаров
4. Создайте пользователей с нужными правами
2. Создайте категории позиций через "Администрирование" → "Категории позиций"
3. Добавьте первые позиции через "Каталог" → "Добавить позицию"
4. Настройте права доступа для пользователей
## 📖 Руководство пользователя
### Главная страница
- **Быстрые действия**: добавление товаров, приход/расход
- **Быстрые действия**: добавление товаров, приход/расход (согласно правам доступа)
- **Статистика**: общая информация о складе
- **Последние операции**: мониторинг активности
- **Быстрая навигация**: выпадающее меню категорий
- **Быстрая навигация**: выпадающее меню категорий при наведении
### Навигация по категориям
### Hover-навигация по категориям
- **Выпадающее меню**: появляется при наведении на "Каталог"
- **Плавная анимация**: плавное появление и исчезновение
- **Быстрый переход**: клик по категории открывает отфильтрованный каталог
- **URL фильтрация**: прямые ссылки вида `catalog.html?category=electronics`
- **Визуальная обратная связь**: иконки и цвета категорий
- **Визуальная обратная связь**: иконки, цвета и количество позиций в категориях
- **Единообразие**: одинаковое меню на всех страницах
- **Умное поведение**: меню не закрывается при наведении на само меню
### Каталог позиций
- **Просмотр**: все позиции с фильтрами и статистикой
- **Поиск**: по названию, описанию, штрих-коду
- **Фильтры**: по категории, цене, наличию, статусу запасов
- **Редактирование**: изменение информации о позициях (только для админов и менеджеров)
- **Удаление**: удаление позиций (только для администраторов)
- **Экспорт**: выгрузка каталога в CSV формате
- **Безопасность**: проверка прав доступа для всех операций
- **Быстрая навигация**: выпадающее меню категорий при наведении
- **Hover-навигация**: выпадающее меню категорий при наведении
- **URL фильтрация**: прямая ссылка на отфильтрованный каталог
### История операций
@ -132,7 +159,7 @@ warehouse-system/
- **Расширенные фильтры**: точная настройка
- **Результаты**: с подсветкой найденного
- **Экспорт результатов**: сохранение найденного
- **Быстрая навигация**: переход к категориям из результатов поиска
- **Hover-навигация**: переход к категориям из результатов поиска
### Профиль пользователя
- **Информация**: личные данные и права
@ -140,6 +167,12 @@ warehouse-system/
- **Настройки**: персонализация интерфейса
- **Безопасность**: смена пароля
### Администрирование
- **Управление категориями**: создание, редактирование, удаление категорий
- **Настройка иконок**: выбор иконок Font Awesome для категорий
- **Цветовая схема**: настройка цветов категорий
- **Активность категорий**: включение/отключение категорий
## 🔧 Администрирование
### Управление пользователями
@ -149,10 +182,10 @@ warehouse-system/
4. Создавайте, редактируйте, удаляйте пользователей
### Настройка категорий
1. Откройте "Категории позиций"
2. Добавьте нужные категории
3. Настройте иконки и описания
4. Категории автоматически появятся в выпадающем меню
1. Откройте "Администрирование" → "Категории позиций"
2. Добавьте нужные категории с иконками и цветами
3. Настройте описания и активность
4. Категории автоматически появятся в hover-меню
5. Изменения применяются мгновенно на всех страницах
### Генерация отчетов
@ -176,8 +209,8 @@ warehouse-system/
minQuantity: 10,
location: "Стеллаж A-1",
supplier: "Поставщик",
createdAt: "2025-01-15T10:00:00Z",
updatedAt: "2025-01-15T10:00:00Z"
createdAt: "2025-08-15T10:00:00Z",
updatedAt: "2025-08-15T10:00:00Z"
}
```
@ -191,7 +224,7 @@ warehouse-system/
quantity: 10,
employeeId: 1,
employeeName: "Имя сотрудника",
date: "2025-01-15T10:00:00Z",
date: "2025-08-15T10:00:00Z",
status: "completed",
supplier: "Поставщик",
recipient: "Получатель",
@ -223,8 +256,9 @@ warehouse-system/
color: "#2c5aa0",
active: true,
itemCount: 25,
createdAt: "2025-01-15T10:00:00Z",
updatedAt: "2025-01-15T10:00:00Z"
totalQuantity: 150,
createdAt: "2025-08-15T10:00:00Z",
updatedAt: "2025-08-15T10:00:00Z"
}
```
@ -243,34 +277,48 @@ warehouse-system/
}
```
### Добавление новых категорий
В файле `js/warehouse.js` найдите функцию `loadCategories()` и добавьте новые категории:
```javascript
{
id: 'new-category',
name: 'Новая категория',
icon: 'fas fa-icon-name',
color: '#2c5aa0',
description: 'Описание категории',
active: true
}
```
### Настройка выпадающего меню
Категории автоматически появляются в выпадающем меню навигации. Для настройки стилей отредактируйте CSS в `css/style.css`:
### Настройка hover-меню категорий
Для настройки стилей hover-меню отредактируйте CSS в `css/style.css`:
```css
#catalogCategoriesDropdown {
min-width: 250px;
max-height: 400px;
min-width: 280px;
max-height: 500px;
overflow-y: auto;
border: none;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
border-radius: 12px;
padding: 0.5rem 0;
}
/* Hover dropdown functionality */
.nav-item.dropdown:hover .dropdown-menu {
display: block !important;
}
.nav-item.dropdown:hover .dropdown-toggle::after {
transform: rotate(180deg);
}
```
### Настройка прав доступа
В файле `js/auth.js` измените массив пользователей или добавьте новые роли и разрешения.
В файле `js/auth.js` измените массив пользователей или добавьте новые роли и разрешения. Система автоматически скрывает элементы в зависимости от ролей пользователя.
### Добавление новых категорий
Через интерфейс системы:
1. Войдите как администратор или менеджер
2. Перейдите в "Администрирование" → "Категории позиций"
3. Нажмите "Добавить категорию"
4. Заполните форму с иконкой, цветом и описанием
## 🔒 Безопасность
### Система управления правами доступа
- **Автоматическое скрытие элементов**: кнопки и функции скрываются согласно ролям
- **Проверка прав на сервере**: все операции проверяют права доступа
- **Безопасные сессии**: данные пользователя хранятся в LocalStorage
- **Валидация данных**: проверка всех входных данных
- **Информативные подсказки**: кнопки показывают требуемые права
### Рекомендации по безопасности
1. **Измените пароли по умолчанию** при первом входе
2. **Используйте HTTPS** в продакшене
@ -278,6 +326,13 @@ warehouse-system/
4. **Ведите логи** всех операций
5. **Делайте резервные копии** данных
### Настройка HTTPS
Для продакшена обязательно используйте SSL-сертификат:
```bash
# Пример с Let's Encrypt
sudo certbot --nginx -d your-domain.com
```
## 📈 Производительность
### Оптимизация
@ -286,6 +341,13 @@ warehouse-system/
- Минимизируйте количество одновременных операций
- Регулярно очищайте старые данные
### Масштабирование
- Для больших объемов данных используйте базу данных
- Добавьте серверную часть (PHP, Node.js, Python)
- Используйте CDN для статических файлов
- Настройте кэширование на сервере
- Оптимизируйте загрузку категорий для больших каталогов
### Технические улучшения
- **Безопасная обработка данных**: проверка на null/undefined
- **Валидация форм**: клиентская проверка ввода
@ -295,10 +357,21 @@ warehouse-system/
- **URL маршрутизация**: обработка параметров и фильтров
- **Асинхронная загрузка**: динамическое обновление меню
- **Кэширование данных**: оптимизация производительности
- **Hover-функциональность**: плавные анимации и переходы
## 🔄 Последние обновления
### Версия 1.2.0 (Август 2025)
### Версия 1.3.0 (Август 2025)
-**Система управления правами доступа**: автоматическое скрытие элементов согласно ролям
-**Hover-навигация**: выпадающее меню категорий при наведении мыши
-**Удаление данных по умолчанию**: чистая система для самостоятельного заполнения
-**Улучшенная безопасность**: проверка прав доступа для всех операций
-**Централизованное управление правами**: единая система в auth.js
-**Информативные подсказки**: кнопки показывают требуемые права
-**Плавные анимации**: hover-эффекты и переходы
-**Умное поведение меню**: предотвращение закрытия при наведении
### Версия 1.2.0 (Январь 2025)
-**Добавлено выпадающее меню категорий**: быстрая навигация по категориям
-**Реализована URL фильтрация**: прямые ссылки на отфильтрованный каталог
-**Улучшена навигация**: единообразное меню на всех страницах
@ -306,7 +379,7 @@ warehouse-system/
-**Улучшен UX**: hover эффекты и визуальная обратная связь
-**Расширена функциональность**: переходы между категориями из любого места
### Версия 1.1.0 (Август 2025)
### Версия 1.1.0 (Январь 2025)
-**Улучшена безопасность каталога**: добавлена проверка прав доступа
-**Исправлена навигация**: добавлена ссылка "Поиск" в главное меню
-**Улучшена обработка ошибок**: безопасная работа с пустыми данными
@ -341,7 +414,19 @@ warehouse-system/
- Проверьте консоль на ошибки загрузки данных
- Очистите фильтры, если каталог пустой
- Проверьте URL параметры для фильтрации по категориям
- Убедитесь, что выпадающее меню категорий загружается
- Убедитесь, что hover-меню категорий загружается
#### Не работает hover-меню
- Проверьте, что JavaScript загружен корректно
- Убедитесь, что jQuery подключен
- Проверьте консоль на ошибки
- Очистите кэш браузера
#### Элементы интерфейса скрыты
- Проверьте роль пользователя
- Убедитесь, что пользователь авторизован
- Проверьте права доступа в auth.js
- Очистите LocalStorage и войдите заново
### Логи и отладка
Откройте консоль разработчика (F12) для просмотра ошибок и логов.
@ -363,20 +448,22 @@ warehouse-system/
## 📄 Лицензия
Этот проект распространяется под лицензией MIT.
Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.
## 👥 Авторы
- Разработка: Roman Pylaev
- Дизайн: Roman Pylaev
- Тестирование: Roman Pylaev
- Разработка: [Ваше имя]
- Дизайн: [Имя дизайнера]
- Тестирование: [Имя тестировщика]
## 📞 Контакты
- Telegram/Discord: @dark7es
- Email: support@warehouse-system.com
- Телефон: +7 (XXX) XXX-XX-XX
- Веб-сайт: https://warehouse-system.com
---
**Версия**: 1.2.0
**Дата**: Январь 2025
**Последнее обновление**: 15.01.2025
**Версия**: 1.3.0
**Дата**: Август 2025
**Последнее обновление**: 15.08.2025