Skip to content

BUBLET/logistics-app

Repository files navigation

LogisticsDApp

LogisticsDApp — это децентрализованное приложение для управления логистическими заказами на основе блокчейна. Оно обеспечивает прозрачность, безопасность и надежность данных, позволяя пользователям создавать, отслеживать и подтверждать заказы в распределенной сети.

Оглавление

  1. Возможности
  2. Основные функции смарт-контракта
  3. Стек
  4. Установка и запуск
  5. Использование
  6. Дополнительные команды
  7. Советы и рекомендации
  8. Вклад
  9. Лицензия
  10. Контакты

Возможности

  • Создание заказов: Отправители могут создавать новые логистические заказы, указывая получателя, расстояние, тип груза и автоматически рассчитываемую цену.
  • Отслеживание заказов: Пользователи могут просматривать список своих отправленных и полученных заказов.
  • Оплата заказов: Отправители могут оплачивать заказы через блокчейн.
  • Подтверждение получения: Получатели могут подтверждать получение заказа и оставлять отзывы.
  • Статистика: Просмотр общей статистики по количеству заказов, отзывов и средней оценке.
  • Управление компанией: Специальные функции для компаний, включая управление заказами.

Основные функции смарт-контракта

  1. addOrder: Создание нового заказа. Указывает получателя, расстояние, тип груза и цену.
  2. payForOrder: Оплата заказа отправителем. Средства замораживаются в контракте.
  3. completeOrder: Подтверждение получения заказа. Средства остаются в контракте, а получатель оставляет отзыв.
  4. cancelOrder: Отмена заказа отправителем с возвратом замороженных средств.
  5. getOrder: Получение информации о конкретном заказе по ID.
  6. getReviewsByOrder: Получение отзывов о заказе.
  7. withdrawCompanyFunds: Вывод средств из контракта компанией.

Стек

  • Frontend: React, Material-UI, Web3.js
  • Backend: Truffle, Solidity
  • Блокчейн: Ethereum (можно использовать Ganache для локального тестирования)
  • Управление состоянием: React Hooks

Установка и Запуск

Предварительные Требования

Убедитесь, что у вас установлены следующие инструменты:

  • Node.js (версия 14.x или выше)
  • npm (устанавливается вместе с Node.js)
  • Truffle (для работы со смарт-контрактами)
  • Ganache (для локального тестирования блокчейна)

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

git clone https://github.com/BUBLET/logistics-app
cd logistics-app

Шаг 2: Установка Зависимостей Backend

В корневой директории проекта установите зависимости для Truffle:

npm install

Шаг 3: Компиляция и Развёртывание Смарт-Контрактов

  1. Запустите Ganache: Откройте Ganache для локального тестирования блокчейна.

  2. Настройте Truffle: Убедитесь, что truffle-config.js настроен на использование сети Ganache.

  3. Миграция контрактов:

npm run migrate

Это скомпилирует и развернет смарт-контракт на локальном блокчейне. После успешной миграции в папке build/contracts/ появится файл Logistics.json, содержащий ABI и адрес контракта. Этот файл автоматически скопируется в рабочую src папку, для передачи информации о контракте в приложение.

Шаг 4: Установка зависимостей приложения

cd frontend/LogisticsApp
npm install

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

После установки зависимостей запустите React-приложение:

npm start

Приложение откроется в вашем браузере по адресу http://localhost:3000.

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

  1. Подключение MetaMask:

    • Убедитесь, что у вас установлен MetaMask и подключён к локальной сети Ganache.
    • Импортируйте аккаунты из Ganache в MetaMask, используя приватные ключи.
  2. Создание Заказа:

    • Перейдите во вкладку "Добавить заказ".
    • Заполните форму с данными заказа и отправьте транзакцию.
  3. Отслеживание Заказов:

    • Вкладка "Список заказов" отображает все ваши отправленные и полученные заказы.
    • Для отправителей доступны кнопки "Оплатить" (если заказ не оплачен).
    • Для получателей доступны кнопки "Подтвердить получение" (если заказ оплачен).
  4. Отзывы и Статистика:

    • Вкладка "Статистика" показывает общую информацию по заказам и отзывам.
  5. Управление Компанией:

    • Доступна вкладка "Управление" для специальных функций.

About

decentralized logistics app on React

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published