LogisticsDApp — это децентрализованное приложение для управления логистическими заказами на основе блокчейна. Оно обеспечивает прозрачность, безопасность и надежность данных, позволяя пользователям создавать, отслеживать и подтверждать заказы в распределенной сети.
- Возможности
- Основные функции смарт-контракта
- Стек
- Установка и запуск
- Использование
- Дополнительные команды
- Советы и рекомендации
- Вклад
- Лицензия
- Контакты
- Создание заказов: Отправители могут создавать новые логистические заказы, указывая получателя, расстояние, тип груза и автоматически рассчитываемую цену.
- Отслеживание заказов: Пользователи могут просматривать список своих отправленных и полученных заказов.
- Оплата заказов: Отправители могут оплачивать заказы через блокчейн.
- Подтверждение получения: Получатели могут подтверждать получение заказа и оставлять отзывы.
- Статистика: Просмотр общей статистики по количеству заказов, отзывов и средней оценке.
- Управление компанией: Специальные функции для компаний, включая управление заказами.
- addOrder: Создание нового заказа. Указывает получателя, расстояние, тип груза и цену.
- payForOrder: Оплата заказа отправителем. Средства замораживаются в контракте.
- completeOrder: Подтверждение получения заказа. Средства остаются в контракте, а получатель оставляет отзыв.
- cancelOrder: Отмена заказа отправителем с возвратом замороженных средств.
- getOrder: Получение информации о конкретном заказе по ID.
- getReviewsByOrder: Получение отзывов о заказе.
- withdrawCompanyFunds: Вывод средств из контракта компанией.
- Frontend: React, Material-UI, Web3.js
- Backend: Truffle, Solidity
- Блокчейн: Ethereum (можно использовать Ganache для локального тестирования)
- Управление состоянием: React Hooks
Убедитесь, что у вас установлены следующие инструменты:
- Node.js (версия 14.x или выше)
- npm (устанавливается вместе с Node.js)
- Truffle (для работы со смарт-контрактами)
- Ganache (для локального тестирования блокчейна)
git clone https://github.com/BUBLET/logistics-app
cd logistics-app
В корневой директории проекта установите зависимости для Truffle:
npm install
-
Запустите Ganache: Откройте Ganache для локального тестирования блокчейна.
-
Настройте Truffle: Убедитесь, что
truffle-config.js
настроен на использование сети Ganache. -
Миграция контрактов:
npm run migrate
Это скомпилирует и развернет смарт-контракт на локальном блокчейне. После успешной миграции в папке build/contracts/
появится файл Logistics.json
, содержащий ABI и адрес контракта. Этот файл автоматически скопируется в рабочую src папку, для передачи информации о контракте в приложение.
cd frontend/LogisticsApp
npm install
После установки зависимостей запустите React-приложение:
npm start
Приложение откроется в вашем браузере по адресу http://localhost:3000.
-
Подключение MetaMask:
- Убедитесь, что у вас установлен MetaMask и подключён к локальной сети Ganache.
- Импортируйте аккаунты из Ganache в MetaMask, используя приватные ключи.
-
Создание Заказа:
- Перейдите во вкладку "Добавить заказ".
- Заполните форму с данными заказа и отправьте транзакцию.
-
Отслеживание Заказов:
- Вкладка "Список заказов" отображает все ваши отправленные и полученные заказы.
- Для отправителей доступны кнопки "Оплатить" (если заказ не оплачен).
- Для получателей доступны кнопки "Подтвердить получение" (если заказ оплачен).
-
Отзывы и Статистика:
- Вкладка "Статистика" показывает общую информацию по заказам и отзывам.
-
Управление Компанией:
- Доступна вкладка "Управление" для специальных функций.