A decentralized platform for sharing physical items with smart contract-based security and automated shipping fee management.
- Smart contract-based item lending and borrowing
- Double shipping fee deposit system for security
- Optional buyout prices for permanent transfers
- Ethereum-based transaction security
- Modern web interface with Material-UI
- Kotlin backend with JAX-RS (Jersey)
- JDK 17 or later
- Node.js 16 or later
- Ethereum wallet (MetaMask recommended)
- PostgreSQL database
.
├── backend/ # Kotlin backend
│ ├── src/
│ │ ├── main/
│ │ │ ├── kotlin/ # Kotlin source files
│ │ │ └── resources/ # Configuration files
│ │ │
│ │ └── build.gradle.kts # Gradle build configuration
├── frontend/ # React TypeScript frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── contracts/ # Smart contracts
│ │ └── services/ # TypeScript services
│ └── package.json # NPM package configuration
└── README.md
-
Navigate to the backend directory:
cd backend -
Build the project:
./gradlew build
-
Run the application:
./gradlew appRun
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm start
The platform uses a Solidity smart contract to manage:
- Item creation and ownership
- Lending and borrowing
- Shipping fee deposits
- Buyout transactions
The contract ensures:
- Double shipping fee deposit for security
- Automatic return of deposits upon item return
- Secure transfer of ownership for buyouts
-
Double Shipping Fee Deposit:
- One portion covers shipping costs
- Second portion held as security deposit
- Automatically returned upon item return
-
Smart Contract Security:
- Cryptographic verification of transactions
- Immutable record of item status
- Automated enforcement of lending terms
-
User Protection:
- Suspension system for malicious users
- Buyout options for permanent transfers
- Location tracking for valuable items
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Credits: This project benefited from AI code assistance by Cursor.