Skip to content

DECAF• Professional is designed to provide am ecosystem for organisations and users to have complete discretion over a particular document, maintaining integrity, transparency, availibility and authenticity. The application's architecture was built using blockchain technology.

License

Notifications You must be signed in to change notification settings

De-CAF/DECAF-React

Repository files navigation

DECAF• Professional ☕

DECAF• Social ☕

Product Presentation Image Product Presentation Image

Developed! ✔️

Coming Soon! 👨‍🔧 👩‍🔧

DECAF• Professional is designed to provide am ecosystem for organisations and users to have complete discretion over a particular document, maintaining integrity, transparency, availibility and authenticity. The application's architecture was built using blockchain technology.

Table of Contents

  1. Browser Support
  2. Features
  3. Demo
  4. Static Pages
  5. Quick Start
  6. Contact

Browser Support

DECAF• Professional requires a Metamask enabled browser to avail the services. At present, we officially aim to support the following browser:

Metamask Enabled Chrome

Features

1. Authentication:

  • Users and organizations can register using their personal email or using gmail.

  • Users can login and change their profile photo, gender, biodata, location, phone and birth date.

  • Organizations can login and change their profile photo, biodata, location and phone.

2. Crypto Wallet Support:

  • The application is designed to support Ethereum based wallets, namely Metamask.

  • The wallet is integrated in the architecture of the application so as to support transactions using cryptocurrencies developed on the Ethereum blockchain.

  • Organizations and users can connect to their wallet and can view their network, wallet balance and their metamask account address.

  • Organizations and users need to connect to the wallet to access all features of the application.

3. Organization to User Document Issuing:

  • A dynamic form is created, which checks whether the receiver is connected to a wallet or not so as to retrieve the metamask account address for the transaction.

  • Organization uploads a master file (PDF/Image). The file status is dynamically updated along with the preview of the file after interactions with a smart contract.

  • The file is checked for any previous signature using a smart contract. If a signature is found, the transaction is blocked and the organization cannot sign/issue the file.

  • Organization signs the file using the metamask wallet and confirms the transaction for issuing the file to a user using a smart contract.

4.User to 3rd Party Document Sharing:

  • A similar form as mentioned above is created to check for the receiver.

  • User uploads a master file and a valid signature is checked using a smart contract.

  • A valid master file then can be shared to another 3rd party organization.

  • Users cannot send a version file to an organization.

5. Document Verification:

  • A separate microservice is created for verifying a document.

  • A 3rd party can verify by interacting with a smart contract, who was the original signer of the document. Signer’s email address, metamask address and name is viewed.

  • This same framework is used in the above forms for conducting valid transactions.

6. Version Control:

  • A version control mechanism is implemented using smart contract interaction.

  • Organizations can issue new versions of a particular master document, to create a version directory for that document.

  • All the versions of that master document are visible across the user base and subsequent 3rd party organizations with whom the master document is shared.

7. Access Control:

  • An access control framework is implemented using smart contract interaction.

  • Organizations can revoke the access of a particular master document and its version directory from the user. Subsequently the 3rd parties will also be denied access.

  • Users can also revoke the access of the master document and its version directory from 3rd party organizations.

Demo

  • Document and Version Issuing:

    Steps:
    1. Login into your account and connect your Metamask wallet to the application.
    2. Enter the email address of receiver. The account address and receiver's name will be updated dynamically. (Note: The receiver must be connected to a wallet.)
    3. Choose your file to upload. Wait for the file's ipfs hash to generate. (Note: File status will be updated dynamically.)
    4. Sign the document and confirm the transaction to execute the smart contract for signature using the Metamask wallet.
    5. Send the file by confirming one more transaction using the Metamask wallet.
    6. In the transaction table select the 'Add' button to add a version document. Follow steps 2 to 5 for issuing the version document.
Organisation is issuing a document and its version to a user.
Part1
  • 3rd Party Organisation Document Sharing:

    Steps:

    1. Login into your account and connect your Metamask wallet to the application.
    2. Enter the email address of receiving organisation. The account address and receiver's name will be updated dynamically. (Note: The receiver must be connected to a wallet.)
    3. Choose your file to upload. Wait for the file's ipfs hash to generate. (Note: File status will be updated dynamically.)
    4. Check whether the file has a valid signature and is indeed sent by the issuing organisation.
    5. Send the file by confirming 2 transactions using the Metamask wallet.

    (Note: User cannot send the version document. The master document must be selected.)

User is sharing the master document received to a third party organisation.
Part1
  • 3rd Party Organisation Document Verification:

    Steps:

    1. Login into your account and connect your Metamask wallet to the application.
    2. Go to the 'Verification' tab in the 'Settings' page.
    3. Choose your file to upload. Wait for the file's ipfs hash to generate. (Note: File status will be updated dynamically.)
    4. Issuer's details will be displayed if the file has a valid signature.

    (Note: Organisation cannot issue a document that is already signed by another organisations.)

Third party organisation is veryfying the authenticity of a version document received.
Part1
  • Revoking Access:

    Steps:

    1. Login into your account and connect your Metamask wallet to the application.
    2. In the transactions table, click the 'Revoke' button.
    3. Confirm the transaction using the Metamask wallet to execute the smart contract.

    (Note: The document and its version map will be revoked from the users as well the 3rd party organisations with whom they have shared the document.) (Note: User will not be authorised to share this document again until the document is issued again.)

Organisation is revoking access of a document and its subsequent versions.
Part1

Static Pages

  • Home

    We have created a home page and landing page to have an entry point for the application.
Home Page
Home
  • Landing

    We have created a landing page to give a breif description about the product development team and the product.
Product Description Team Description
Login Page Register Page

Quick start

Running the application:

  • Install Metamask extension on chrome. Setup your wallet.
  • Clone the repo: git clone https://github.com/De-CAF/DECAF-React.git.
  • Create project on https://goerli.infura.io.
  • Create .secret.json file with content as {"projectId": Goerli Project Id, "mnemonics": Wallet Secret}.
  • npm i --save
  • npm start.

Running Local Blockhain Network:

  • Install Ganache.
  • Setup Ganache with network id 1337 and RPC server HTTP://127.0.0.1:8545.
  • Add the network to your Metamask Wallet in Settings or Add Network button under the Networks tab.

Deploying Smart Contract on a network:

  • Make sure Truffle CLI is installed in your pc.
  • To deploy the smart contract on local network Ganache, run the command truffle migrate.
  • To deploy the smart contract on testnet, for instance Goerli, run the command truffle migrate --network goerli.

Contact

Shreyas More: [email protected]

Pranav Ahuja: [email protected]

Nandita Kadam: [email protected]

Ramesh Krishnan: [email protected]

About

DECAF• Professional is designed to provide am ecosystem for organisations and users to have complete discretion over a particular document, maintaining integrity, transparency, availibility and authenticity. The application's architecture was built using blockchain technology.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •