Этот репозиторий содержит веб-приложение для управления выдачей и возвратом оборудования с использованием базы данных SQLite. Система предоставляет функционал для управления оборудованием, администрирования пользователей и админов, а также функции поиска данных.
- Отслеживание выдачи и возврата оборудования
- Автоматическая генерация уникальных номеров выдачи
- Удобный интерфейс для возврата оборудования
- Админ-панель для комплексного управления
- Поиск по всем записям
- Экспорт данных по оборудованию в Excel
- Управление пользователями и администраторами
- Управление типами оборудования
- Backend: Node.js с использованием Express.js
- Frontend: HTML, CSS, JavaScript
- База данных: SQLite
- Шаблонизатор: EJS (Embedded JavaScript templating)
- Аутентификация: Express-session для управления сессиями
- Хеширование паролей: bcrypt
- Экспорт в Excel: ExcelJS
/views
: содержит EJS-шаблоны для отображения страниц/public
: хранит статические файлы (CSS, клиентский JavaScript)/db
: содержит файл базы данных SQLiteapp.js
: основной серверный файл с конфигурацией Express и маршрутамиpackage.json
: зависимости Node.js и команды для запуска
- Клонируйте репозиторий:
git clone [URL репозитория] cd [имя репозитория]
- Установите зависимости:
npm install
- Запустите сервер:
node app.js
- Доступ к приложению по адресу
http://localhost:4000
- Опции для выдачи оборудования и доступа к админ-панели
- Форма для записи данных о выдаче оборудования
- Автоматическая генерация номеров выдачи
- Удобный интерфейс для сотрудников для отметки возврата оборудования
- Отображение активных выдач для выбранного пользователя
- Полный обзор всех выдач оборудования
- Поиск по всем полям
- Подтверждение возврата оборудования
- Экспорт данных в Excel
- Доступ к управлению пользователями и типами оборудования
- Добавление, редактирование или удаление типов оборудования
- Добавление новых администраторов
- Изменение паролей администраторов
- Автоматическое присвоение номеров выдачи в формате ИТ[YY]-[NNNN]
- Запись данных о выдаче в базу данных
- Двухэтапный процесс возврата: пользователь отмечает возврат, администратор подтверждает
- Запись временной метки для действий по возврату
- Просмотр и поиск всех записей по оборудованию
- Подтверждение возврата оборудования
- Управление типами оборудования
- Управление администраторами
- Хеширование паролей с использованием bcrypt
- Аутентификация на основе сессий для доступа к админ-панели
- Реализация более продвинутых методов поиска для больших наборов данных
- Добавление пагинации для записей по оборудованию
- Реализация пользовательских ролей с разными уровнями доступа
- Добавление уведомлений по электронной почте для просроченного оборудования
Внесение улучшений в систему приветствуется. Пожалуйста, следуйте этим шагам:
- Форкните репозиторий
- Создайте новую ветку (
git checkout -b feature-branch
) - Внесите свои изменения и зафиксируйте их (
git commit -am 'Add some feature'
) - Отправьте изменения в свою ветку (
git push origin feature-branch
) - Создайте новый Pull Request
Для удаления администратора выполните следующие шаги:
-
Доступ к админ-панели: Войдите под пользователем с ролью "god".
-
Навигация к удалению администратора:
- Перейдите по URL
/confirm-delete/:username
, заменив:username
на имя пользователя администратора, которого хотите удалить. - На странице появится запрос на подтверждение.
- Перейдите по URL
-
Подтверждение удаления:
- Подтвердите удаление, чтобы навсегда удалить администратора из базы данных.
Примечание: Только пользователи с ролью "god" могут удалять других администраторов. Это действие необратимо, поэтому действуйте осторожно.
Для обновления пароля администратора выполните следующие шаги:
-
Доступ к форме сброса пароля:
- Войдите под пользователем с ролью "god".
- Перейдите по URL
/reset-password
.
-
Отправка нового пароля:
- Заполните форму, указав имя пользователя администратора, для которого вы хотите обновить пароль, и новый пароль.
- Отправьте форму, и пароль будет безопасно хеширован и обновлен в базе данных.
Примечание: Это действие требует прав "god". Убедитесь, что новый пароль соответствует требованиям безопасности.