Git Product home page Git Product logo

ethglobal-west-texas-oil's People

Contributors

andykeh710 avatar ermz avatar kenman79 avatar skellet0r avatar tesla809 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ethglobal-west-texas-oil's Issues

Add ERC998ERC721 bottom-up composable

Is your feature request related to a problem? Please describe.

Our dBol contract should mint new dBol's and then assign them to a BOL. Currently there is no functionality to assigning to another NFT.

Describe the solution you'd like

Similar to #30 we need to install this functionality via another smart contract and then inherit.

Describe alternatives you've considered

See #30

Additional context

See #30

Update Component

Is your feature request related to a problem? Please describe.
Users have no way of updating their BOL once they've created it.

Describe the solution you'd like
This is simple, we need an update view, which will only require a text box and a submit button.
Users will fill in the text box with information about their update, and the information will be submitted to IPFS and then the
CID will be put on chain.

Login Component

Is your feature request related to a problem? Please describe.
Anyone who accesses the application gets the same view. There is no way of differentiating between users.

Describe the solution you'd like
When accessing the application, the user should be prompted to login and then to connect their wallet (Metamask/Portis). This way can differentiate users by their email/account.

Describe alternatives you've considered

There are a couple solutions I can think of, we can:

  1. Integrate with Google/Facebook etc...
    • Requires setting up a GCP project
    • Long term relieves us of dealing with User account management (no password resets and all of that)
  2. Create our own User system
    • Requires setting up our own DB and managing user credentials
    • Short term for a MVP/POC this is probably most viable and easy

Additional context

https://developers.google.com/identity/sign-in/web/sign-in
https://rimble.consensys.design/components/rimble-ui/MetaMaskButton

Implementing the BOL on the blockchain

Is your feature request related to a problem? Please describe.

Crude oil is currently physically transported, and the asset's information is typically all on paper (sometimes computerized by centralized by one entity).

Describe the solution you'd like

Using an NFT on the Ethereum blockchain, we can have a transferable asset which is immutable and visible/accessible to all, increasing the real time availability of asset information.

Describe alternatives you've considered

Since this is a hackathon centered on developing on the EVM no alternatives were brought forward. However, an alternative would be to host a public API server, but managing the schema/security/mutability and such would be costly and painful.

Additional context

Refer to the meeting minutes for 2021-01-18.

Implement the dBOL asset on the blockchain

Is your feature request related to a problem? Please describe.

When a BOL is delivered to the offloading specialist, payment should occur immediately.

Describe the solution you'd like

We should utilize ERC998 to create a dBOL NFT which will control aTokens. The aTokens and the dBOL should not be able to be accessed by anyone except upon delivery, in which case it will be given to the driver who can do with the assets as they wish.

Describe alternatives you've considered

We could use the ERC1155 to create a multi-token contract which manages both the BOL and dBOL.

Additional context

aTokens are interest bearing and the balance continually increases. When we have a ERC998, we should make sure to keep track of the interest each dBOL is accrueing, especially if our contract is managing multiple.

Add ERC998ERC20 Smart Contract Implementation

Is your feature request related to a problem? Please describe.

Currently there is an interface given for ERC998ERC20, but no implementation we can inherit from.

Describe the solution you'd like

The simplest solution would be to install contract via npm and then inherit from it.

Describe alternatives you've considered

We can also create our implementation, with proper test coverage.

Additional context

https://eips.ethereum.org/EIPS/eip-998
https://github.com/mattlockyer/composables-998

Read Component

Is your feature request related to a problem? Please describe.
Users have no way of viewing their Bills which are on chain.

Describe the solution you'd like
To start we need a list view, which has a child (Bill of Lading Component), it displays for each Bill of Lading.

Describe alternatives you've considered
In the future having a Detailed view would be nice.

Create Component

Is your feature request related to a problem? Please describe.
Users have no way of creating a Bill Of Lading.

Describe the solution you'd like
There should be a form (create view) which users can go to and submit the information to generate a Bill of Lading.
The fields required are:

  • address driver;
  • string serialNumber;
  • GeoPosition[2] origin;
  • GeoPosition[2] destination;
  • uint256 quantity;

GeoPosition[2] is a longitude and lagitude pair, we can simply ask for users to select a point of destination from a list and hard code the values for now (Origin should be easy since they're only originating from West Texas).

Update home page and adding BOL

Is your feature request related to a problem? Please describe.
Clean up the main front end with a little bit of styling

Describe the solution you'd like
home page, about page, add bol, edit bol, view bol

Describe alternatives you've considered
raw html

Additional context
Add any other context or screenshots about the feature request here.

State Transitions for the BOL

Is your feature request related to a problem? Please describe.

A BOL can be transferred without the recipient being aware.

Describe the solution you'd like

There should be some functionality where the recipient has to either request the BOL, or the recipient should have to confirm/attest to the receipt of the BOL.

Describe alternatives you've considered

Alternative is to keep the logic simple, and have the driver approve someone to take the BOL, and then have the recipient use the transferFrom function.

ENS Address Component

Is your feature request related to a problem? Please describe.

Long ethereum addresses look complicated for the User. The user shouldn't have to worry about ethereum at all.

Describe the solution you'd like

Creating an Address component that uses ENS to display an ENS name would help.

Describe alternatives you've considered

We could've also created an address book, and managed the addresses with their display names. This would require some form of central db.

Additional context

https://docs.ens.domains/

CRUD app / main page

Is your feature request related to a problem? Please describe.
The BOL has no way of being created and uploaded.

Describe the solution you'd like
Build a CRUD app using react to handle the BOL.

Describe alternatives you've considered
Using something other than react(e.g. vue) Using raw HTML

Initialize Truffle Project

Is your feature request related to a problem? Please describe.

There is no truffle project currently!

Describe the solution you'd like

A truffle project should be initialized.

Describe alternatives you've considered

Alternatives to truffle (javascript) include, hardhat (typescript) and brownie (python)

[BUG] Broken Link for "open issues" in README.md

Describe the bug

The link for "open issues" in README.md is broken. Link opens to a 404 error. the broken link is: https://github.com/github_username/repo_name/issues.
This pull request changes link to: https://github.com/EthBuilders/EthGlobal-West-Texas-Oil/issues.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'https://github.com/EthBuilders/EthGlobal-West-Texas-Oil#readme'
  2. Click on 'open issues' hyperlink.
  3. See 404 error

Device: Galaxy Note 10+

  • OS: Android v11
  • Browser: chrome

The Readme is lacking content

Is your feature request related to a problem? Please describe.

Nobody knows what this project is about, maybe we should add something to the README?

Initialize Front End React App

Is your feature request related to a problem? Please describe.
We currently don't have a react app/front end initialized.

Describe the solution you'd like

Use npm to install react and then initialize react app project.

Describe alternatives you've considered

You can also use npx, yarn.

Utilize the Matic Network

Is your feature request related to a problem? Please describe.

Gas fees are skyrocketing and it results in a poor user experience since transactions will result in high fees.

Describe the solution you'd like

Using the Matic Network (L2 Solution), we can bridge the Ethereum mainnet and Matic mainnet, and utilize the low transaction fees and faster throughput. We can also further decrease gas costs for our users and abstract away from the blockchain by using a transaction relayer such as biconomy or GSN.

Describe alternatives you've considered
We could stay on the Ethereum mainnet if we utilized biconomy or GSN, however that would just shift the gas costs from the user to someone else. And with the rising gas prices this still doesn't solve the issue of high gas fees.

Additional context
https://docs.matic.network/

Navbar Component

Is your feature request related to a problem? Please describe.

Users can't switch between different pages without some form of navigation bar/panel.

Describe the solution you'd like

There should be a simple nav bar that users can click to move between pages.

Describe alternatives you've considered

We could have different url routes, but to keep this a simple single page web app, we can use routing + a nav component.

Additional context

Depending on the access permissions of the user, there will be different options available on the navigation bar.

Add Pull Request Template

Is your feature request related to a problem? Please describe.

Pull requests currently are missing information, and may not always close a ticket.

Describe the solution you'd like

We should have a PR template to enforce a standard.

Describe alternatives you've considered

Discussing on the slack?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.