Skip to content

πŸ† ICON Hackathon Hyperbuild Winner - Social Impact / Public Good award

Notifications You must be signed in to change notification settings

SnowyField1906/icollection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

I. Introduction

1. Overview

1.1. Description

- This is a huge marketplace implementing a new type of token has a comprehensive full range of features.

- Supported by new-blockchain-platform ICON, this full-stack decentralized application has incredibly fast transaction speed.

1.2. Built with

- ReactJS

- TailwindCSS

- ICON JavaScript SDK

- Goloop CLI

- JSON-RPC

- ...etc

1.3 Website URL

https://SnowyField1906.github.io/iCollection

1.4 Requirements

- ICONex wallet

https://chrome.google.com/webstore/detail/iconex/flpiciilemghbmfalicajoolhkkenfel

- Testnet ICX on Sejong network

https://faucet.iconosphere.io/

- Recommend using Linux for better experience

1.5 Last update

- November 1st, 2022

1.6 Upcoming features

- A separated currency for special privileges

- Vouchers

- Promotions

- Membership cards

- A huge social network system


2. iCollection Introduction

- This web application is a platform for trading a special type of token.

  • Unlike NFT - ICR3, which can be minted into multiple copies, this token represents something particularly unique in the world (such as artworks, limited items, or even houses, etc.).
  • The price can never be changed except for deletion or Auction.

- Due to have high competitiveness, this token is also purchased in a special way.

  • It is impossible to purchase any NFT right away but through Send Request method. Once the first Request is sent, there will be a 24-hour countdown to wait for the second Request.
  • Unless there is the second Request, after 24 hours, that NFT will automatically belongs to that single Request.
  • Otherwise, an Auction will be opened automatically after 24 hours with the same amount of time for its duration since the first Request. But the owner can still custom its duration, limit bid and start in pending period. Once started, the first Request becomes the first Bidder immediately. The final Bidder will be the owner.

- Have highly competitive and valuable as it relies on copyright and scarcity.

  • The new owner will have fully access to that NFT, in contrary, the old owner will lose all control and can only own it through an acquisition.

- Everything is all automatic.

  • The Smart Contracts were written in a special way to keep everything launching in automaticity.

3. Common Issues

- It's easy to get free ICX for experiencing the service.

  • This web application was launched on Sejong testnet, where you can pay everything for free. In order to do it, remember to using ICX faucets before using.

- Be careful to use copyrighted picures for testing without permissions.

  • This web application will not have any relevance to the cases of users infringing copyright.

- The contents might be oversized.

  • When coding this web application, I used an operating system that everything is shrunk. I was startle when opening it on other devices. I sincerely apologize for this unfortunate accident.

- The code is a bit messy and the performance is stil not good.

  • I did this project in a rush, that's why everything is still not good and the source code looks a bit messy.
  • Besides, there are still some essential features missing and a lot of things unfinished, it will be perfected someday in the future.

II. Information

1. Backend (ICON Blockchain)

1.1. Network - NID

Sejong testnet - 0x53

1.2. Contract address

cxe9f245feb01cf439901ed3eef9e307f76653e198

1.3. Tracker url

https://sejong.tracker.solidwallet.io/contracttx/cxe9f245feb01cf439901ed3eef9e307f76653e198

1.4. Variables

Types Names Properties
Global users ArrayList<Address>
Mapping userMapCollections HashMap<Address, ArrayList<String>>
collectionMapNFTs HashMap<String, ArrayList<String>>
nftMapRequests HashMap<String, ArrayList<Address>>
nftMapOwners HashMap<String, HashMap<Address, BigInteger>>
nftMapNotifications HashMap<String, ArrayList<String>>
Information collectionInfo HashMap<String, Collection>
nftInfo HashMap<String, NFT>
notificationInfo HashMap<String, Notification>

1.5. Methods

Types Methods
CALL SEND
Global getUsers getPublicNotifications \
getPublicCollections getPublicNFTs
User getUserAuctions getUserNotifications \
getUserCollections getUserCustomCollections
getUserPublicCustomCollections
Collection getCollectionNFTs getCollectionPublicNFTs createCollection editCollection
deleteCollection
NFT getNFTOwners getNFTCurrentOwner createNFT editNFT
getNFTRequests getFirstRequest addNFT addToCart
getNFTNotifications getNFTPurchaseTimes removeNFT deleteNFT
Information getCollectionInfo getNFTInfo \
getNotificationInfo onSale
Contract balance value \
Auction auctionStatus sendRequest sendBid
startAuction
Addition sortedCollections sortedNFTs \

2. Frontend

2.1. Pages

Types Names Routes
Main pages Welcome /iCollection
Home /iCollection/h
Explore /iCollection/e
Gallery /iCollection/g
About /iCollection/a
Sub pages Create /iCollection/c
Profile /iCollection/p
Logs /iCollection/l
External pages External Profile /iCollection/p/address
External Collection /iCollection/p/address/collection-name

2.2. Containers

Types Names
Shortcuts Collections
Cart
Notification
Navigators Header
Footer
Components Collection Card
Small Collection
Big Collection
Edit Collection
Collection List
NFT Card
Small NFT
Big NFT
Auction Modal

About

πŸ† ICON Hackathon Hyperbuild Winner - Social Impact / Public Good award

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published