8000 GitHub - devayanm/AssetHub: AssetHub decentralized application (DApp) empowers users to seamlessly register and oversee assets such as land and vehicles on the Ethereum blockchain. Leveraging smart contracts, it ensures a secure, transparent, and immutable asset registration process.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

AssetHub decentralized application (DApp) empowers users to seamlessly register and oversee assets such as land and vehicles on the Ethereum blockchain. Leveraging smart contracts, it ensures a secure, transparent, and immutable asset registration process.

Notifications You must be signed in to change notification settings

devayanm/AssetHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AssetHub Project

AssetHub Logo

Overview

This decentralized application (DApp) enables users to register and manage assets like land and vehicles on the Ethereum blockchain. It utilizes smart contracts for secure, transparent, and tamper-proof asset registration. The frontend, built with React.js, provides an intuitive user interface, making it accessible to users interacting with the Ethereum blockchain.

πŸš€ Features

πŸ“„ Asset Registration

Users can seamlessly register their assets, providing essential details such as location, ownership, and asset-specific information. The registration process ensures transparency and immutability by leveraging Ethereum smart contracts.

πŸ›’ Marketplace Integration

The DApp includes a decentralized marketplace where users can buy, sell, or trade registered assets. Smart contracts facilitate secure and trustless transactions, ensuring the integrity of asset ownership transfers.

βš–οΈ Auctions and Renting

To enhance flexibility, the project introduces features for asset auctions and renting. Users can participate in auctions to bid on assets, and there's an option to rent assets for a specific duration. These functionalities are governed by smart contracts, promoting trust and security.

πŸ‘€ User Authentication and Profiles

A robust authentication system secures user accounts, allowing them to access personalized profiles. Users can track their registered assets, transaction history, and participate in community discussions.

πŸ“± Responsive UI with Bootstrap

The frontend boasts a responsive design, ensuring a seamless user experience across various devices. Bootstrap is employed for its clean, mobile-friendly components and grid system.

πŸ› οΈ Future Enhancements

  • πŸ”” User Notifications: Implement a notification system to alert users about successful registrations, auction bids, and other relevant activities.

  • πŸ’‘ Enhanced Marketplace Features: Introduce advanced marketplace features such as a BBAA reputation system, detailed asset listings, and a decentralized review system.

  • πŸ”— Integration with External APIs: Connect the DApp to external APIs for real-time asset data, enhancing the accuracy of registered information.

  • 🌐 Multi-chain Support: Explore the possibility of extending the DApp to support multiple blockchains, providing users with more choices and interoperability.

🧰 Tech Stack

The AssetHub project is built using the following technologies:

  • Frontend:

    • React.js
    • Web3.js
    • Bootstrap
  • Backend:

    • Node.js
    • Express.js
    • MongoDB
  • Blockchain:

    • Ethereum
  • Other Tools:

    • Truffle Suite
    • IPFS
    • JWT (JSON Web Tokens)
    • Cloudinary

🚨 Important Notice 🚨

Please Note:

  • The website might take 2 to 3 minutes to load due to some technical issues such as bugs or optimization problems. This delay is primarily due to the backend being hosted on a platform that employs a "cold start" mechanism. When inactive, the server spins down to save resources, causing a delay when waking up. Please be patient.
  • For the best experience, use the website in desktop site mode if accessing it from a phone.

πŸ› οΈ Test User Credentials πŸ› οΈ

To facilitate easy access for reviewing the project, you can use the following test login credentials:

Username Password
test test@1234

🌐 Website Hosting

The website is hosted on the following platforms:


Project Structure

project-root/
β”‚
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ node_modules/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ ... (public files)
β”‚   β”‚
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ constants/
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ App.css
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   β”œβ”€β”€ routes.js
β”‚   β”‚   β”œβ”€β”€ contractConfig.js
β”‚   β”‚   └── ...
β”‚   β”‚
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── README.md
β”‚
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ node_modules/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ ... (public files)
β”‚   β”‚
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”œβ”€β”€ middlewares/
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ app.js
β”‚   β”‚   β”œβ”€β”€ constants.js
β”‚   β”‚   └── index.js
β”‚   β”‚
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ .prettierrc
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── README.md
β”‚
β”œβ”€β”€ contract/
β”‚   β”œβ”€β”€ build/
β”‚   β”œβ”€β”€ contracts/
β”‚   β”œβ”€β”€ migrations/
β”‚   β”œβ”€β”€ test/
β”‚   β”œβ”€β”€ truffle-config.js
β”‚   └── ...
β”‚
└── README.md

πŸ“Š Insights

  • Total Lines of Code: Lines of Code
  • Contributors: Contributors
  • Repository Size: Repository Size
  • Last Commit: Last Commit

πŸ“ Prerequisites

  1. Node.js: Install Node.js
  2. Truffle Suite: Install Truffle
  3. Ganache: Install Ganache

πŸš€ Getting Started

  1. Clone the repository:

    git clone https://github.com/devayanm/AssetHub.git
    cd AssetHub
  2. Install dependencies for the client:

    # Install Truffle globally
    npm install -g truffle
    
    # Install project dependencies for the client
    cd client
    npm install
  3. Install dependencies for the server:

    # Install project dependencies for the server
    cd ../server
    npm install
  4. Configure Environment Variables:

    • Create a .env file in the client directory.

    • Add your backend hosted URL for the client in the client's .env file:

      REACT_APP_BACKEND_URL=https://your-backend-hosted-url.com/api/v1
    • Create another .env file in the server directory and add the following environment variables:

      PORT=8000
      MONGODB_URI=mongodb+srv://your_username:your_password@cluster0.anjoog4.mongodb.net
      CORS_ORIGIN=*
      CLOUDINARY_CLOUD_NAME=your_cloud_name
      CLOUDINARY_API_KEY=your_api_key
      CLOUDINARY_API_SECRET=your_api_secret
      CLOUDINARY_URL=cloudinary://your_cloudinary_url
      ACCESS_TOKEN_SECRET=your_access_token_secret
      ACCESS_TOKEN_EXPIRY=1d
      REFRESH_TOKEN_SECRET=your_refresh_token_secret
      REFRESH_TOKEN_EXPIRY=10d
  5. Start the React app:

    # Start the React app
    cd ../client
    npm start
  6. Start the server:

    # Start the server
    cd ../server
    npm run dev
  7. Open your browser and navigate to http://localhost:3000 to access the DApp.


πŸ§ͺ Testing

Run the Truffle tests:

truffle test

🀝 Contributing

If you would like to contribute to this project, please open an issue or create a pull request.


πŸ“œ License

This project is licensed under the MIT License.

About

AssetHub decentralized application (DApp) empowers users to seamlessly register and oversee assets such as land and vehicles on the Ethereum blockchain. Leveraging smart contracts, it ensures a secure, transparent, and immutable asset registration process.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
0