An open API service indexing awesome lists of open source software.

https://github.com/cbonoz/hackfs21

CheckoutFS - Create instant checkout and product pages hosted on IPFS
https://github.com/cbonoz/hackfs21

Last synced: 21 days ago
JSON representation

CheckoutFS - Create instant checkout and product pages hosted on IPFS

Awesome Lists containing this project

README

        



## CheckoutFS

Create instant checkout pages for your business or service hosted on IPFS.

Prototype built for the HackFS 2021 hackathon.

### Inspiration

Pain points:

- To create a hosted product catalog, usually you'd need to pay a subscription fee hosted provider like squarespace or shopify.
- Many of these existing providers don't integrate cryptocurrency.
- Providers aren't distributed and suffer downsides of existing centralized platforms (vendor lock in, variable pricing, outages, credit card fees)

### Features

- Discover existing catalogs and menus. Use the the IPFS cid as the primary key for storefront access.
- Upload images and descriptions for the catalog. Metadata for the catalog is delivered via a Ceramic stream.
- Show sharable product pages hosted on IPFS.
- Integrated pricing and checkout using Unlock protocol (other payment integrations could also be added).
- Create a new wallet to support payments to help new businesses adopt and receive cryptocurrency payments.
- IPFS powered storage and transaction record keeping.

### Technologies used

- IPFS and Protocol labs (Hosting and sharing of assets): IPFS and Filecoin are the primary drivers making CheckoutFS possible. Using web3.storage, a storefront or product page creator can host a distributed menu or catalog of items available for purchase with cryptocurrency.
- Pillar (payments and wallet creation for uploaders) \* Enables wallet generation and onboarding for businesses that may not have crypto accounts already. Pillar exists on the wallet page and is integrated live to validate that a customer's web3 wallet is ready to accept payments. Pillar is also leveragable for the checkout process which would need further development.
- Unlock Protocol (purchasing): Provides cryptocurrency gateway to enable visitors/customers to purchase items from the checkout page. https://app.unlock-protocol.com/dashboard
- Audius: Music sharing and content listings. Audius API is integrated into the product for musicians to be able to sell rights/use to their music through catalog pages. Lookup any playlist ID and get an instant page.
- Ceramic: Used for storefront metadata storage and retrieval using streams (community node: https://developers.ceramic.network/run/nodes/community-nodes/). When a product page is accessed, a ceramic stream with the streamId of the page cid is opened and the metadata is rendered with the products from IPFS.
- Fluence: Price oracle interaction for rendering real time USD quotes on checkout pages based on latest Eth price. Fluence enables doing this without a deployed smart contract or other oracle. Custom checkout pages would also be generated via an IPNS call.

### How to run

Define the following env variables


REACT_APP_STORAGE_KEY = {YOUR_WEB3_STORAGE_KEY}

`yarn; yarn start`

Example simple checkout page already hosted on IPFS: http://localhost:3000/pages/bafybeid67zzz5auzpc2botitsrp2lh2ybutnqkw3mej4s6dlrkthhmis5q

### Aqua / Fluence

(WIP)
For price oracle, regenerate aqua script file with `js` flag.


npm i -g @fluencelabs/aqua-cli # install aqua cli
cd `/aqua`
aqua-cli -i aqua-scripts -o aqua-output --js

ex: https://github.com/fluencelabs/examples/tree/ae3b23c99e5a23f7da99a22bf5a6877109ae7982/aqua-examples/ts-oracle

### Enhancements

- Integrate payments and checkout flows directly from the catalog (enabling the product to be used table side). Currently this is using a fixed Unlock.js modal.
- Add support for physical address collection for physical or remote item purchase.
- Email integration via fluence backend.
- IPNS publishing and fully custom domains.
- App prototype currently demoed on rinkeby, additional testing and implementation will be required for mainnet usage.

## Screenshots

### CheckoutFS

### Creating a new storefront

### Upload complete

### IPNS publish to publicize storefront uploads.

### Creating shortcut or scannable link

### Basic storefront

### Music-resell storefront

### Verifying wallet