Inspiration
Remember old school tickets which we use to collect? Each ticket was unique. But, nowadays Tickets do not have the memory part, which people wanted to keep with them when they move or travel.NFTs nowadays have come into the picture to make tickets more functional and memorable.
You may lose a paper-based ticket; they may get wet and ruined. Also, it’s hard to travel with a paper-based ticket as it may get lost. Moreover, organizers do not get enough security with paper-based tickets as they can be quickly faked. QR codes looked like a good answer for organizers but not that effective for guests purchasing them.
However, with the use of Non-Fungible Tokens(NFTs), an application of blockchain technology, the ticketing industry could be revolutionized. Ticket Marketplace is a web ticketing application with decentralization, transparency, and security as its features. As a result, the process becomes more accessible and leads to a significant reduction in black market practices.
What it does
Given is the project architect of our model. We are using:
Ethereum smart contracts for building business logic on the Blockchain Also making necessary functions such as buying, put on sale, minting of tickets. The contracts are deployed on the Matic network for faster transactions & achieving fewer gas fees.
Backend server which is acting as a medium between frontend and smart contracts, we are using socket events to listen to the events generated by smart contracts and storing some off-chain data on MongoDB. Some API’s are also made for integrating with frontend
Frontend which is the UI part is integrated with smart contracts using the web3js library & calling some backend API for fetching off-chain data. While minting tickets metadata of the Nft’s are stored on IPFS & NFT.Storage.
Users can interact with the smart contracts from the front end. Also, the owner of the contract which is the admin also can perform CRUD Operations on the event categories part.
How we built it
Front end ReactJS: It is a front-end library that is used for building dynamic web applications. Web3JS: It is a library that is used for integrating smart contracts with front-end libraries. Back end NodeJS/ExpressJS: Used to create servers and listen to socket events for storing the data off-chain on MongoDB. MongoDB: It is a database for storing and accessing large amounts of data with ease. Smart Contracts Smart contracts are used for building logic on blockchain. In this project, we have used Ethereum smart contracts as well as the OpenZepplin library for building the NFT smart contracts.
Challenges we ran into
1 Integrating IPFS & Nft.Storage 2 Adding QR code for tickets 3 Integrating blockchain with backend server
Accomplishments that we're proud of
1 Adding IPFS & NFT.storage fr storing metadata 2 Storing off-chain data on MongoDB using backend server 3 Adding QR codes to the ticket 4 Deployment on matic network
What we learned
We learned a lot about how to optimize code for smart contracts, deploying the contracts on the Matic network. Using web3 js library with socket events.
What's next for Ticket Marketplace
1 Using Matic POS bridge in our web app 2 Making UI more responsive and improving designing 3 Integrating IoT with blockchain such as scanning using an IoT device for the QR codes. 4 optimizing code 5 making an admin panel for managing categories
Log in or sign up for Devpost to join the conversation.