Skip to content
This repository has been archived by the owner on Feb 11, 2024. It is now read-only.
/ airChain Public archive

🏭 🛩️ Ethereum DApp to manage an aircraft manufacturing supply chain

License

Notifications You must be signed in to change notification settings

sripwoud/airChain

Repository files navigation

Ethereum DApp to manage a Supply Chain flow between a Customer, a Manufacturer, a Supplier and a Transporter during the manufacturing of an aircraft.

App Front End Screen Capture

Worfklow and User Stories

State diagram

  1. User
    Orders an Aircraft (AC). Pays half of the AC price upfront.
    Inputs: Equipment ID, Manufacturer address.

  2. AC manufacturer

    • Orders the equipment from the supplier. Pays equipment price.
      Inputs: Equipment ID, Supplier ID, Manufacturer Serial Number (MSN).
    • Prepares the AC structure
      Inputs: Origin Plant, Aircraft notes.
  3. Supplier
    Receives component for the ordered equipment.
    Inputs: Component ID, Equipment ID, Component manufacturer name (optional), Component's origin (optional).

  4. Supplier
    Processes equipment. Only the same supplier as the one who was contracted by the manufacturer (who ordered the given equipment) can process a received component on it. Indicates notes and the equipment's origin.
    Inputs: Component ID, Equipment Origin (optional), Equipment notes (optional).

  5. Supplier
    Packs equipment. Pays the first half of the transport fee.
    Inputs: Equipment ID, Transporter address.

  6. Transporter
    Transports equipment.
    Input: Equipment ID.

  7. Manufacturer:
    Receives equipment. Pays the second half of the transport fee.
    Input: Equipment ID.

  8. Manufacturer
    Processes equipment.
    Inputs: Equipment ID, Equipment notes (optional).

  9. Customer
    Receives the ordered AC. Pays the second half of the AC price.
    Input: MSN.

For further views of the workflow described above, consider looking at the other UML diagrams:

Architecture

Class diagram

Contract details

This contract is deployed on the Rinkeby network!
So the ETH available on these test accounts aren't worth anything :-p. The private keys are only listed so that one can load them in one's Metamask wallet and play around with the DApp.

  • Contract address: 0xBaC7C73D28545fd816Fa3b8448213225e9a7De09
  • Contract owner (deployed from address): 0x45517697E4fc823BE60a066EcCa8139Ce9C4659e
  • Test users created
    • Test_customer
      • address: 0x05a9FD6814B19D43403A0eB2039d3A5A64797684
      • private key: 28B5483F414EAC91967F041BB283CB887371A316EA6437C8D02AC6338DE27642
      • add role transaction
    • Test_manufacturer
      • address: 0xD2224Db6e59146588F55f8dC2fE7C95649250E01
      • private key: DDE34AADD343A00BE2B201A42FFC5AC9005C01F7AA82A64604934658C35EAF33
      • add role transaction
    • Test_supplier
      • address: 0xAe269f47Aa55D0bD1888A9D347f6e7107141A9Bd
      • private key: CC8634E2C694F4AAD0E263E62E6282FEFD0CEDB482686610F7F2D4365538B5A2
      • add role transaction
    • Test_transporter
      • address: 0x7833f7d5A9191c98A4b6c2bA957eA77d9DD6AeCa
      • private key: A38F9C1331B522B469B77A5A8A913FF0173771A10B938F527E29BA187E9768C6
      • add role transaction
  • Test transactions

Resources