A modern, decentralized event ticketing platform built on Ethereum that issues NFT tickets with beautiful on-chain metadata.
VibePass main interface showcasing modern glassmorphism design with animated gradients
- Glassmorphism Design - Beautiful translucent cards with backdrop blur effects
- Animated Gradients - Dynamic background with smooth color transitions
- Responsive Layout - Optimized for desktop, tablet, and mobile devices
- Interactive Elements - Hover animations, button ripple effects, and smooth transitions
- Accessibility Support - Screen reader friendly with reduced motion preferences
- ERC-721 NFT Tickets - Each ticket is a unique, tradeable NFT
- On-Chain Metadata - Beautiful SVG tickets generated dynamically
- Smart Contract Security - Built with OpenZeppelin's battle-tested contracts
- Gas Optimization - Efficient contract design with minimal transaction costs
- Multi-Network Support - Deploy on Ethereum, Polygon, or any EVM-compatible chain
- Dynamic Seat Selection - Interactive seating chart with real-time availability
- Multiple Events - Support for unlimited events and occasions
- Flexible Pricing - ETH-based pricing with customizable costs per event
- Sold Out Protection - Automatic handling of seat availability
- Transaction Monitoring - Real-time transaction status with loading indicators
React 18.2.0 // Modern React with hooks and functional components
Ethers.js 5.8.0 // Ethereum blockchain interaction library
CSS3 // Modern CSS with custom properties and animations
HTML5 // Semantic markup with accessibility featuresSolidity 0.8.20 // Smart contract programming language
Hardhat 2.12.7 // Ethereum development environment
OpenZeppelin 4.9.6 // Security-focused contract library
Ethers.js // Blockchain interaction and testingNode.js // JavaScript runtime environment
Yarn 4.6.0 // Package manager with modern features
ESLint // Code linting and quality assurance
Prettier // Code formatting and style consistency
Git // Version control systemMocha + Chai // Testing framework with assertion library
Hardhat Deploy // Deployment scripts and network management
Ethereum Waffle // Smart contract testing utilities
Hardhat Gas Reporter // Gas usage analysis and optimization
Solidity Coverage // Code coverage analysis for smart contractsvibepass/
βββ π contracts/ # Smart contracts
β βββ VibePass.sol # Main ERC-721 NFT contract
βββ π scripts/ # Deployment scripts
β βββ deploy.js # Contract deployment script
βββ π test/ # Smart contract tests
β βββ VibePass.test.js # Comprehensive test suite
βββ π utils/ # Utility functions
β βββ verify.js # Contract verification helper
βββ π src/ # Frontend React application
β βββ π components/ # React components
β β βββ Navigation.js # Navigation bar with wallet connection
β β βββ Card.js # Event card component
β β βββ Sort.js # Filtering and sorting controls
β β βββ SeatChart.js # Interactive seating chart
β β βββ Seat.js # Individual seat component
β βββ π abis/ # Contract ABIs
β β βββ VibePass.json # Contract interface
β βββ π assets/ # Static assets
β βββ App.js # Main React application
β βββ index.js # Application entry point
β βββ index.css # Global styles and animations
β βββ config.json # Contract deployment addresses
βββ hardhat.config.js # Hardhat configuration
βββ package.json # Dependencies and scripts
βββ README.md # This file
- Node.js (v16 or higher)
- Yarn package manager
- MetaMask wallet extension
- Git for version control
git clone <repository-url>
cd vibepass# Install all dependencies
yarn install
# Or use npm
npm installCreate a .env file in the root directory:
# Blockchain Configuration
PRIVATE_KEY_METAMASK=your_private_key_here
ALCHEMY_API_URL=https://eth-sepolia.g.alchemy.com/v2/your_api_key
ETHERSCAN_API_KEY=your_etherscan_api_key
# Optional: Gas reporting
COINMARKETCAP_API_KEY=your_coinmarketcap_api_key# Compile contracts
yarn hardhat compile
# Run tests
yarn hardhat test
# Generate gas report
yarn hardhat test --gas-reporter# Start local Hardhat node
yarn hardhat node
# Deploy contracts (in new terminal)
yarn hardhat run scripts/deploy.js --network localhost# Start React development server
yarn start
# Open http://localhost:3000 in your browserThe main smart contract implementing ERC-721 standard with the following features:
list()- Create new events (owner only)mint()- Purchase tickets and mint NFTstokenURI()- Generate on-chain SVG metadatagetTakenSeats()- View occupied seatsgetOccasion()- Retrieve event details
struct Occasion {
string name; // Event name
uint256 id; // Unique identifier
string date; // Event date
string time; // Event time
string location; // Event location
uint256 cost; // Ticket price in wei
uint256 maxTickets; // Maximum tickets available
uint256 tickets; // Remaining tickets
}- Owner-only event creation
- Seat availability validation
- Payment amount verification
- Reentrancy protection
- OpenZeppelin security patterns
Experience the modern, colorful interface with glassmorphism effects and smooth animations
| Home Screen | Event Details |
|---|---|
![]() |
![]() |
| Animated gradient background with glass-effect event cards | Interactive seat selection with real-time NFT minting |
- Color Palette: Vibrant gradients with glassmorphism effects
- Typography: Inter and Space Grotesk for modern aesthetics
- Animations: Smooth transitions with CSS custom properties
- Responsive: Mobile-first design with breakpoints at 768px and 480px
- Event Cards: Glass-effect cards with hover transforms
- Seat Selection: Color-coded seats (green=available, orange=taken)
- Loading States: Blur overlay with transaction progress
- Wallet Integration: Seamless MetaMask connection
- Screen reader support
- Keyboard navigation
- High contrast mode
- Reduced motion preferences
- Semantic HTML structure
# Run all tests
yarn hardhat test
# Run with coverage
yarn hardhat coverage
# Run specific test file
yarn hardhat test test/VibePass.test.js- Contract deployment β
- Event creation β
- Ticket purchasing β
- Seat management β
- NFT minting β
- Access control β
yarn hardhat node
yarn hardhat run scripts/deploy.js --network localhostyarn hardhat run scripts/deploy.js --network sepoliayarn hardhat run scripts/deploy.js --network mainnetContracts are automatically verified on Etherscan when deployed to public networks.
- Efficient storage patterns
- Batch operations where possible
- Minimal external calls
- Optimized loop structures
Contract: VibePass
βββ Deployment: ~2,500,000 gas
βββ Event Creation: ~150,000 gas
βββ Ticket Purchase: ~120,000 gas
βββ Metadata Generation: On-chain, no additional gas
- OpenZeppelin battle-tested contracts
- Owner-only administrative functions
- Input validation and sanitization
- Reentrancy protection
- Integer overflow/underflow protection
- Secure wallet integration
- Transaction validation
- Error handling and user feedback
- No private key exposure
- Secondary marketplace integration
- Event organizer dashboard
- Multi-token payment support
- Mobile app development
- Layer 2 scaling solutions
- IPFS metadata storage
- Event streaming integration
- Loyalty rewards system
- GraphQL API integration
- Advanced caching strategies
- Progressive Web App (PWA)
- WebAssembly optimization
- Multi-language support
We welcome contributions! Please see our contributing guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
# Fork and clone the repo
git clone https://github.com/your-username/vibepass.git
# Create feature branch
git checkout -b feature/amazing-feature
# Make changes and commit
git commit -m "Add amazing feature"
# Push to your fork
git push origin feature/amazing-featureThis project is licensed under the MIT License - see the LICENSE file for details.
- OpenZeppelin - For providing secure smart contract templates
- Hardhat - For the excellent development environment
- React Team - For the amazing frontend framework
- Ethereum Foundation - For the decentralized platform
Developed by Kellspell
Passionate blockchain developer creating the future of decentralized applications
For support, questions, or collaboration opportunities:
- π§ Email: Contact through LinkedIn
- πΌ LinkedIn: Kell Silva
- π GitHub: @kellspell
- π¦ Issues: Create an issue in this repository
β If you found this project helpful, please give it a star! β
