This project seeks to create a platform to move to Web3 a event ticketing service. The project combines event creation, as well as buy & sell tickets and involves two players: i)event host and ii) users/individuals. On the one hand, allows the host to create events and sell tickets where it can be set: Event name; Total number of tickets; Pricing; Limit tickets per user; Upload event logo/image. Further, the platform allows the withdrawal of funds. On the other hand, users can vizualizate all available events with their features, buy tickets, transfer and use them to check-in.

NFT Events tickets  showcase

How it's made

Can be split in four main use phases: -Creating a new event -See your events - withdrawal -Buy tickets -Use or transfer the tickets you bought #### New event Anyone only connecting a compatible wallet can enter and create a new event with the following options: Event name Number of tickets Limit of tickets per wallet Tickets price Event image This action interacts with the EventFactory contract which is the core of the project. This contract recibes the create Event call and generates a new Event contract where all the logic of the event will be deployed. The event creation generates an NFT representing the event per se. The project uses IPFS to store the event image, and also to save metadata in a static IPFS-served json file. The hash obtained is stored in the contract using the ERC721URIStorage properties. #### Your events - withdrawal Any user can log in to the platform connecting their wallet. The platform will display all the NFT Events of the connected User and the information of each one, including the amount of tickets sold and the funds available to withdraw. From there the user can withdraw the funds interacting with the Event contract directly. #### Buy tickets Any logged user can visualize all the events created by the EventFactory contract, including all the features. From there, the user can try to buy a new ticket. This interaction calls the mint method of the corresponding Event contract and if all the conditions are met, a new NFT that represents the event ticket, is minted. #### Use or transfer tickets Any logged user can view all the tickets that the connected wallet had bought or received. The user can transfer tickets to another wallet, this action calls the transfer method of the event contract. Also the user can trigger the “Use Ticket” action, this action will call a method from the event contract that will mark the ticket as “used”. This property is visible to the public and is only callable once.