About Milky Way
Milky Way is a decentralized fullstack web application developed with Next.js, Solidity, Hardhat, Openzepplin, using IPFS for file storage. It is a NFT Marketplace for users to mint, list, sell, and buy NFTs.
- Blockchain - Meter (optional RPC provider)
- Ethereum Development Environment - Hardhat
- Front end framework - Next.js & React
- Ethereum web client library - Ethers.js
- File storage - IPFS
Milky Way To Start
run npm install after git clone
run npm run dev
Solidity Contract - NFT.sol
This contract uses OpenZepplin ERC721 standard, developed with Hardhat(development environment). The contract contains standard functions, namely minting tokens, updating listing price, creating sale, reselling tokens, transferring ownership of token, returning unsold market items, returning purchased items for users, returning only listed items for users.
Features
The project is a platform for users to mint, list/relist, sell, and buy NFTs. Users must login with their metamask in order to buy, sell, list, or relist the NFTs. The website recognizes each user's metamask account as a unique valid login account, so users would not have to register to the platform to log in. Users may connect to their metamask in the Dashboard if they have not already done so. The button on the rightmost side of the dashboard will show whether or not a user is connected, or logged in. Without connecting to the metamask, users may only browse the marketplace, but would not be able to mint, buy, or sell NFTs. The "Collection" button in the dashboard shows users their bought collections, which they can re-list to the marketplace. The "Listed" button will render what users have listed in the marketplace.

Upon connecting to the metamask, the rightmost button will show status as "metamask connected", and users may then create (mint), buy, or list NFTs.

The Carousel on the main page is just a demonstration of the latest drops of NFTs, upon clicking "view drop" the page redirects to a page that demonstrates an about page of a particular artwork.

Meter Sidechain
Milky Way runs on the Meter sidechain, which helps speed up the process of minting, buying, and selling NFTs as more transactions can be done per node per second, all with lower gas fee.
Project Demo
The demo runs on the Meter testnet so users without MTR can play around with it. It simulates how it would run on the mainnet. Milky Way project demo here
Future Improvements
Milky Way is still a work in progress, there are many improvements that could be made with the code including code refactoring and compartmentalization to make it more modularized. There are some additional functionalities that we would like to incorporate in the future, including auctioning, bidding, deleting listing, changing the listing price, supporting other wallets besides Metamask. Other additional functionalities could include adding a database to support member login alongside with Metamask so users can create their identity in the marketplace, and can save favorite NFTs. This has overall been a really refreshing and challenging project since it is our first decentralized application and first brush with working with the blockchain.
Built With
- ethers.js
- javascript
- meter
- next.js
- react.js
- solidity
Log in or sign up for Devpost to join the conversation.