Skip to content

Absensy/DBGranit

Repository files navigation

DBGranit - Система управления ритуальными услугами

🇬🇧 English version | 🇷🇺 Русская версия

Веб-приложение для управления ритуальными услугами с полным функционалом CRUD операций, поиском и управлением заказами.

📋 Описание

Система управления ритуальными услугами - это веб-приложение на PHP, предназначенное для управления пользователями, категориями товаров, товарами, заказами и их позициями. Приложение предоставляет удобный интерфейс для работы с базой данных MySQL.

✨ Основные возможности

  • 👥 Управление пользователями - добавление, редактирование, удаление пользователей
  • 📦 Управление категориями - работа с категориями товаров и услуг
  • 🛍️ Управление товарами - полный CRUD для товаров с привязкой к категориям
  • 📋 Управление заказами - создание и управление заказами со статусами
  • 🛒 Товары в заказах - управление позициями в заказах
  • 🔍 Поиск - универсальный поиск по всем данным системы
  • 📊 Заполнение БД - скрипты для автоматического заполнения тестовыми данными
  • 📄 Экспорт в PDF - генерация PDF отчётов по всем таблицам и результатам поиска

🛠️ Технологии

  • PHP 7.4+ - серверная часть
  • MySQL 5.7+ - база данных
  • PDO - работа с базой данных
  • HTML5, CSS3, JavaScript - клиентская часть
  • XAMPP/OpenServer - локальная среда разработки

📁 Структура проекта

DBGranit/
├── assets/
│   └── css/
│       └── style.css          # Стили приложения
├── bat/
│   └── start.bat              # Запуск PHP сервера
├── database/
│   ├── database.sql           # SQL скрипт создания БД
│   └── mock_data.sql          # Тестовые данные
├── includes/
│   ├── PDFReportGenerator.php # Класс для генерации PDF
│   └── tcpdf/                 # Библиотека TCPDF
├── pages/
│   ├── users.php              # Управление пользователями
│   ├── categories.php         # Управление категориями
│   ├── products.php           # Управление товарами
│   ├── orders.php             # Управление заказами
│   ├── order_items.php        # Товары в заказах
│   └── search.php             # Поиск по данным
├── reports/
│   └── generate_pdf.php       # Генерация PDF отчётов
├── scripts/
│   ├── fill_database.php      # Заполнение БД тестовыми данными
│   └── test_connection.php    # Тест подключения
├── config.php                 # Конфигурация БД
├── config.example.php         # Пример конфигурации
├── setup_database.php         # Веб-интерфейс создания БД
├── index.php                  # Главная страница
└── README.md                  # Документация

🗄️ Структура базы данных

База данных ритуальные_услуги содержит следующие таблицы:

  • пользователи - информация о пользователях системы
  • категории_товаров - категории товаров и услуг
  • товары - товары и услуги с ценами и количеством
  • заказы - заказы пользователей со статусами
  • товары_в_заказе - связь товаров с заказами

🚀 Установка и запуск

Требования

  • PHP 7.4 или выше
  • MySQL 5.7 или выше
  • Веб-сервер (Apache/Nginx) или встроенный PHP сервер
  • XAMPP/OpenServer (опционально, для упрощения установки)
  • Composer (опционально, для установки TCPDF через Composer)

Шаг 1: Клонирование репозитория

git clone https://github.com/Absensy/DBGranit.git
cd DBGranit

Шаг 2: Настройка базы данных

Вариант А: Через веб-интерфейс (рекомендуется)

  1. Запустите PHP сервер (см. Шаг 5)
  2. Откройте в браузере: http://localhost:8000/setup_database.php
  3. Введите данные подключения к MySQL и нажмите "Создать базу данных"
  4. База данных и все таблицы будут созданы автоматически

Вариант Б: Через командную строку

  1. Запустите MySQL сервер

  2. Создайте базу данных:

    mysql -u root -p < database/database.sql

    Или импортируйте через phpMyAdmin/MySQL Workbench

  3. (Опционально) Заполните базу тестовыми данными через веб-интерфейс:

    • Откройте: http://localhost:8000/scripts/fill_database.php
    • Нажмите "Заполнить базу данных"

Шаг 3: Установка TCPDF (для функции экспорта в PDF)

Для работы функции экспорта в PDF необходимо установить библиотеку TCPDF:

Через Composer (рекомендуется):

composer install

Или вручную: См. подробные инструкции в файле INSTALL_PDF.md

Шаг 4: Настройка подключения

Скопируйте config.example.php в config.php и при необходимости измените параметры подключения:

define('DB_HOST', 'localhost');
define('DB_USER', 'root');  // или 'dbgranit' если создали отдельного пользователя
define('DB_PASS', '');      // укажите пароль, если он установлен
define('DB_NAME', 'ритуальные_услуги');

Примечание: Если используете веб-интерфейс setup_database.php, он автоматически обновит config.php при создании БД.

Шаг 5: Запуск приложения

Вариант А: Встроенный PHP сервер

php -S localhost:8000

Или используйте готовый скрипт:

# Windows
bat\start.bat

# Linux/Mac
php -S localhost:8000

Вариант Б: XAMPP

  1. Скопируйте папку проекта в C:\xampp\htdocs\
  2. Запустите Apache через панель XAMPP
  3. Откройте: http://localhost/DBGranit

Вариант В: OpenServer

  1. Скопируйте папку проекта в domains
  2. Выберите домен в OpenServer
  3. Откройте выбранный домен в браузере

Шаг 6: Открыть в браузере

Перейдите по адресу: http://localhost:8000 (или адрес вашего веб-сервера)

📖 Использование

Главная страница

Главная страница (index.php) предоставляет навигацию по всем разделам системы и карточки с быстрым доступом.

Управление пользователями

  • Добавление новых пользователей с валидацией email
  • Редактирование данных пользователей
  • Удаление пользователей
  • Просмотр списка всех пользователей

Управление категориями

  • Создание категорий товаров
  • Редактирование названий и описаний
  • Удаление категорий (с проверкой связанных товаров)

Управление товарами

  • Добавление товаров с привязкой к категориям
  • Управление ценами и количеством на складе
  • Настройка возможности онлайн-оплаты
  • Редактирование и удаление товаров

Управление заказами

  • Создание заказов с привязкой к пользователям
  • Управление статусами: в_обработке, оплачен, отправлен, выполнен, офлайн
  • Выбор способа оплаты: онлайн/офлайн
  • Автоматический расчет общей суммы

Товары в заказе

  • Добавление товаров в заказы
  • Автоматическое заполнение цены на момент покупки
  • Редактирование количества и удаление позиций

Поиск

  • Универсальный поиск по всем таблицам
  • Фильтрация по типу данных
  • Переход к редактированию найденных записей
  • Экспорт результатов поиска в PDF

Экспорт в PDF

  • Генерация PDF отчётов по всем таблицам (пользователи, категории, товары, заказы, товары в заказах)
  • Экспорт результатов поиска в PDF
  • Красивое форматирование с заголовками, таблицами и метаданными
  • Для работы требуется установка библиотеки TCPDF (см. INSTALL_PDF.md)

🔒 Безопасность

  • Использование PDO prepared statements для защиты от SQL-инъекций
  • Хеширование паролей пользователей (password_hash)
  • Валидация данных на стороне сервера
  • Защита от XSS через экранирование вывода

🐛 Решение проблем

Ошибка подключения к БД

  • Убедитесь, что MySQL сервер запущен
  • Проверьте настройки в config.php
  • Убедитесь, что база данных создана

PHP не найден

  • Добавьте PHP в переменную PATH
  • Или используйте XAMPP/OpenServer

База данных не найдена

  • Используйте веб-интерфейс: http://localhost:8000/setup_database.php
  • Или выполните SQL скрипт database/database.sql вручную
  • Проверьте имя базы данных в config.php

Проблемы с кодировкой

  • Убедитесь, что база данных использует utf8mb4
  • Проверьте настройки charset в config.php

📝 Лицензия

Этот проект создан в образовательных целях.

👤 Автор

Проект разработан для управления ритуальными услугами.

🤝 Вклад в проект

Приветствуются любые предложения и улучшения! Создавайте issues и pull requests.


Примечание: Для продакшн использования рекомендуется добавить систему аутентификации, улучшить обработку ошибок и добавить логирование.

About

Funeral Services Management System is a PHP web application designed to manage users, product categories, products, orders, and their items. The application provides a convenient interface for working with MySQL database.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages