Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s-damian/hardhat-nft-ticketing
Ethereum / Solidity / Hardhat - NFT Marketplace Event Ticketing
https://github.com/s-damian/hardhat-nft-ticketing
ethereum ethereum-blockchain ethereum-contract ethereum-dapp ethersjs event-ticketing hardhat nft nft-marketpplace smart-contracts solidity solidity-contracts solidity-dapps solidity-language typescript
Last synced: 2 days ago
JSON representation
Ethereum / Solidity / Hardhat - NFT Marketplace Event Ticketing
- Host: GitHub
- URL: https://github.com/s-damian/hardhat-nft-ticketing
- Owner: s-damian
- License: mit
- Created: 2024-08-18T04:34:57.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-12-06T18:26:06.000Z (16 days ago)
- Last Synced: 2024-12-06T20:37:44.825Z (16 days ago)
- Topics: ethereum, ethereum-blockchain, ethereum-contract, ethereum-dapp, ethersjs, event-ticketing, hardhat, nft, nft-marketpplace, smart-contracts, solidity, solidity-contracts, solidity-dapps, solidity-language, typescript
- Language: TypeScript
- Homepage:
- Size: 957 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NFT Ticketing in Solidity / Ethereum / Hardhat
> #Solidity 💎 #Ethereum 🔗 #Hardhat ⚒️ #React ⚛️ #NFT 🖼️ #Web3 🌐
> NFT Marketplace Event Ticketing on the **Ethereum Blockchain**
[![Tests](https://github.com/s-damian/hardhat-nft-ticketing/actions/workflows/tests.yml/badge.svg)](https://github.com/s-damian/hardhat-nft-ticketing/actions/workflows/tests.yml)
[![Static Analysis](https://github.com/s-damian/hardhat-nft-ticketing/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/s-damian/hardhat-nft-ticketing/actions/workflows/static-analysis.yml)
[![License](https://img.shields.io/badge/License-MIT-blue)](./LICENSE)This **NFT Ethereum Project** is developed by [Stephen Damian](https://github.com/s-damian)
Note: I developed the same project with [Solana / Anchor](https://github.com/s-damian/anchor-nft-ticketing)
## Summary
- [Project Overview](#project-overview)
- [Roadmap](#roadmap)
- [Prerequisites](#prerequisites)
- [Technologies](#technologies)
- [Getting Started (Localnet)](#getting-started-localnet)
- [Transition: Localnet to Testnet](#transition-localnet-to-testnet)
- [Code Structure](#code-structure)
- [Various Documentations](#various-documentations)
- [License](#license)## Roadmap
- ✅ MetaMask integration.
- ✅ Homepage.
- ✅ Create event.
- ⬜ Event listing.
- ⬜ Buy a ticket.
- ⬜ Generate NFTs.
- ⬜ Verify NFTs.
- ⬜ Integrate other wallets.
- ⬜ Event organizer dashboard.## Project Overview
NFT Marketplace Event Ticketing - A decentralized application for managing and verifying event tickets as NFTs on the Ethereum blockchain.
**Status**: Under development 🚧
![Img](./img/img-2-create-event.png)
See more images here:
[Images](./img/)## Prerequisites
- **Node.js** `>= 18` (last tested: `22`) and **npm** (for the Front-End) - *You can install Node.js and npm here: [Node.js](https://nodejs.org/en/download/package-manager).*
## Technologies
- **Back-End**: Solidity `0.8.28`, Ethereum, Hardhat `2.22.x`
- **Front-End**: Next.js `14`, React `18`, TypeScript `5`, Tailwind CSS
- **Blockchain Interaction**: Ethers.js
- **Wallet Integration**: MetaMask## Getting Started (Localnet)
### Clone the Repository
```bash
git clone https://github.com/s-damian/hardhat-nft-ticketing.git
```### Go to the Hardhat Directory
```bash
cd //hardhat-nft-ticketing
```### Install Dependencies
For the Hardhat App:
```bash
npm install
```For the Next.js App:
```bash
npm install --prefix ./frontend
```### Environment Setup
- Create a `.env` file (for the Hardhat App):
```bash
cp .env.example .env
```- Create a `./frontend/.env` file (for the Next.js App):
```bash
cp ./frontend/.env.example ./frontend/.env
```### Run Hardhat on Local Network
Start a local network with Hardhat:
```bash
npx hardhat node
```### Compile and Deploy
Compile contract(s):
```bash
npx hardhat compile
```Deploy contract(s) on local network:
```bash
npx hardhat run scripts/deploy.ts --network localhost
```> In the terminal your EventManager Contract Address will be displayed.
### Environment Variables - Contract Addresses
- In the `./frontend/.env` of the Next.js App, you need to configure the following environment variable:
```bash
NEXT_PUBLIC_EVENT_MANAGER_CONTRACT_ADDRESS=""
```### MetaMask Wallet
Configure your MetaMask for local development with Hardhat.
> See how to configure MetaMask for local development here: [MetaMask-for-Localnet.md](./docs/MetaMask-for-Localnet.md)
### Run Front-End (Next.js App)
Go to the Next.js App Directory:
```bash
cd //hardhat-nft-ticketing/frontend
```Start the development server:
```bash
npm run dev
```Open your browser and go to:
```bash
http://localhost:3000
```## Transition: Localnet to Testnet
*Preparing for Public Deployment: Transition from Localnet to Sepolia Testnet*
After successfully running your project Locally, the next step is to deploy it to a public Testnet like Sepolia. This section guides you through the process of configuring your environment, deploying your smart contract(s) to the Testnet, and updating your Front-End to interact with the deployed contract(s) on the Testnet.
To switch from the **Localnet** to **Testnet**: [Localnet-to-Testnet.md](./docs/Localnet-to-Testnet.md)
## Code Structure
```bash
.
├── contracts
│ └── [Smart contracts]
├── frontend
│ ├── app
│ │ └── [React pages]
│ ├── src
│ │ ├── components
│ │ │ └── [React components]
│ │ ├── handlers
│ │ │ └── [React handlers]
│ │ └── utils
│ │ └── [React utils]
│ ├── .env
│ ├── package.json
│ └── tailwind.config.ts
├── ignition
│ └── [Ignitions]
├── scripts
│ └── [Scripts]
├── tests
│ └── [Tests]
├── hardhat.config.ts
├── package.json
└── README.md
```## Various Documentations
- See how to configure MetaMask for local development here:
[MetaMask-for-Localnet.md](./docs/MetaMask-for-Localnet.md)- To switch from the **Localnet** to **Testnet** (Sepolia):
[Localnet-to-Testnet.md](./docs/Localnet-to-Testnet.md)- See further technical details here:
[Notes-tech](./docs/Notes-tech.md)## License
This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.