This project implements a smart contract system for event management with NFT-based registration. It consists of two main contracts: EventContract
and Sliders
(NFT).
The EventContract
manages event creation, registration, and attendee tracking.
- Create events (owner only)
- Register for events (requires NFT ownership)
- View event attendees
- Check registration status
- List all events
createEvent
: Create a new event (owner only)registerForEvent
: Register for an event (requires NFT)getAttendees
: Get list of attendees for an eventcheckUserRegistration
: Check if a user is registered for an eventgetEvents
: Get list of all events
The Sliders
contract is an ERC721 token used for event registration.
- Mint new NFTs
- ERC721 standard compliant
mintNFT
: Mint a new NFT with a specified tokenURI
- Deploy the
Sliders
NFT contract - Deploy the
EventContract
, passing theSliders
contract address - Mint NFTs to users who should be able to register for events
- Use
EventContract
to create and manage events
- Only the contract owner can create events
- Users must own at least one NFT to register for events
- Users can only register once per event
- Events have a duration and completion status
This project uses Solidity ^0.8.24 and OpenZeppelin contracts. Ensure you have the necessary development environment set up for Ethereum smart contract development.
See LICENSE file for details.