- Overview
- Project Insights
- Live Demo
- Features
- Smart Contract Functions
- Frontend Features
- Prerequisites
- Installation
- Usage
- More updates
- Acknowledgments
- Contact
- How to Contribute
- Contributing
- Code of Conduct
- Contribution Guidelines
- Suggestions & Feedback
- Show Your Support
- License
- Stargazers
- Forkers
- Project Admin
This is a decentralized application (DApp) built with React that allows users to mint NFTs by uploading images, vote for their favorite NFTs, and select a winner. The images are uploaded to IPFS via Pinata, and the metadata is stored on the blockchain using a smart contract.
| ๐ Stars | ๐ด Forks | ๐ Issues | ๐ Open PRs | ๐ Closed PRs | ๐ ๏ธ Languages | ๐ฅ Contributors |
Experience NFT-VOTING-CONTEST live here:
๐
- Connect to MetaMask wallet
- Upload and validate image files
- Upload images to IPFS via Pinata
- Mint NFTs using a smart contract
- Vote for minted NFTs
- Select and reward the winner
๐ Exciting News...
๐ This project is now an official part of GirlScript Summer of Code โ GSSoC'25! ๐๐๐ป We're thrilled to welcome contributors from all over India and beyond to collaborate, build, and grow NFT-VOTING-CONTEST! Letโs make learning and career development smarter โ together! ๐๐จโ๐ป๐ฉโ๐ป
๐ฉโ๐ป GSSoC is one of Indiaโs largest 3-month-long open-source programs that encourages developers of all levels to contribute to real-world projects ๐ while learning, collaborating, and growing together. ๐ฑ
๐ With mentorship, community support, and collaborative coding, it's the perfect platform for developers to:
- โจ Improve their skills
- ๐ค Contribute to impactful projects
- ๐ Get recognized for their work
- ๐ Receive certificates and swag!
๐ I canโt wait to welcome new contributors from GSSoC 2025 to this NFT-VOTING-CONTEST project family! Let's build, learn, and grow together โ one commit at a time. ๐ฅ๐จโ๐ป๐ฉโ๐ป
-
mintnft(string tokenUri)
- Mints a new NFT and stores metadata on IPFS.
- Payable function.
-
vote(uint256 tokenId, uint256 amount)
- Votes for a specific NFT by donating ETH.
- Payable function.
-
selectwinner()
- Returns the ID of the NFT with the highest votes.
-
sendwinningamount()
- Sends the reward pool to the winner's address.
-
returncurrentrewardpool()
- Retrieves the current reward pool amount.
-
getAllMintedNFTs()
- Returns all minted NFTs with their details (owner, votes, token URI).
-
voterinfo(address)
- Provides voting details for a specific user.
-
rewardpool()
- Displays the total reward pool.
- Allows users to connect their Ethereum wallet using MetaMask.
- Validates and uploads NFT images (JPEG/PNG, max size 5MB).
- Displays remaining time for voting.
- Displays messages for invalid actions or errors (e.g., incorrect file type).
- Automatically fetches all minted NFTs and the reward pool upon wallet connection.
Before you begin, ensure you have met the following requirements:
- Node.js and npm installed
- MetaMask installed in your browser
- Pinata account and API keys
- Clone the repository:
git clone https://github.com/Aditya41205/NFT-MINTING.git cd NFT-MINTING - Install the dependencies:
npm install
- Configuration Create a .env file in the root directory and add your Pinata API credentials:
REACT_APP_PINATA_API_KEY=your_pinata_api_key
REACT_APP_PINATA_SECRET_KEY=your_pinata_secret_key
4 Running the App Start the development server:
npm start
- Connect your MetaMask wallet by clicking the "Connect Wallet" button.
- Upload a valid PNG or JPEG image under 5MB.
- Click "Mint NFT" to upload the image to IPFS and mint an NFT.
- Enter the Token ID and amount to vote for an NFT and click "Vote".
- Click "Select Winner" to select a winner (only accessible by the contract owner).
- Click "Send Winning Amount" to send the reward to the winner (only accessible by the contract owner).
updated.mp4
Stay tuned more updates are underway to make nft minting process gasless
Report bugs and issues or propose improvements through our GitHub repository's "Issues" tab.
Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request.
- Firstly Star (โญ) the Repository
- Fork the Repository and create a new branch for any updates/changes/issue you are working on.
- Start Coding and do changes.
- Commit your changes
- Create a Pull Request which will be reviewed and suggestions would be added to improve it.
- Add Screenshots and updated website links to help us understand what changes is all about.
We welcome all contributions and suggestions! Whether it's a new feature, design improvement, or a bug fix - your voice matters ๐
Your insights are invaluable to us. Reach out to us team for any inquiries, feedback, or concerns.
- Thanks to all contributors of this project
- Special shoutout to GirlScript Summer of Code (GSSoCโ25) for the amazing community and support!
- Built with dedication, collaboration, and lots of chai
- GitHub Issues: Report bugs or request features
- Email: Contact the maintainers for collaboration opportunities
Feel free to reach out with any questions or feedback!
We love contributions from the community! Whether it's a bug report, a new feature, or a documentation improvement, we appreciate your help.
How to Contribute
- Fork the repository and create a new branch for your changes.
- Make your changes and ensure everything is working as expected.
- Submit a pull request with a clear description of your changes.
Found a Bug?
- Check the issue tracker to see if the bug has already been reported.
- If not, open a new issue and provide as much detail as possible.
Have a Feature Idea?
- We'd love to hear it! Open an issue to discuss your idea.
We welcome contributions from developers of all skill levels! Here are some ways you can contribute:
- ๐ Bug fixes - Help us identify and fix bugs
- โจ New features - Suggest and implement new functionality
- ๐ Documentation - Improve our docs and guides
- ๐จ UI/UX improvements - Make the platform more user-friendly
- ๐ง Performance optimizations - Help make NFT-VOTING-CONTEST faster and more efficient
- ๐ฑ Mobile responsiveness - Improve the mobile experience
- ๐ Security enhancements - Help keep user data safe
Thank you to everyone who has made NFT-VOTING-CONTEST better! ๐
Please refer to the Code of Conduct for details on contributing guidelines and community standards.
We love our contributors! If you'd like to help, please check out our CONTRIBUTE.md file for guidelines.
Thank you once again to all our contributors who has contributed to NFT-VOTING-CONTEST! Your efforts are truly appreciated. ๐๐
See the full list of contributors and their contributions on the GitHub Contributors Graph.
Feel free to open issues or discussions if you have any feedback, feature suggestions, or want to collaborate!
If you find NFT-VOTING-CONTEST project helpful, give it a star! โญ to support more such educational initiatives:
- โญ Starring the repository
- ๐ฆ Sharing on social media
- ๐ฌ Telling your friends and colleagues
- ๐ค Contributing to the project
This project is licensed under the MIT License - see the License file for details.
|
Aditya kumar mishra
|
| Role | Name | GitHub Profile | LinkedIn Profile |
|---|---|---|---|
| Mentor 1 | Sitaram sahu | Sitaram | sitaram-sahu |
Open an Issue | ๐ Star on GitHub | ๐ Live Demo
Ready to show off your coding achievements? Get started with NFT-VOTING-CONTEST today! ๐


