DEV Community

Cover image for MongoDB Atlas Hackathon 2022 - TheSample web3 project for developers and community builders
Igor
Igor

Posted on • Edited on

MongoDB Atlas Hackathon 2022 - TheSample web3 project for developers and community builders

What I built

The sample project for web3 enthusiasts, community builders and developers. This project contains of smartcontract (ERC-721) and a website with dashboard and wallet (Metamask) authorization. It can be cloned and used for selling pfp-avatars or NFT collections.

You can check the app link below and try to register using any wallet you want.

Category Submission:

Choose Your Own Adventure

App Link

Link to TheSample project

Screenshots

Main page:

Main page

Main page mobile

Register form

In the demo you can choose, how to register: admin or not. Dashboards will be different.

Register form

Admin dashboard - Users

Admins have access to all users. They can change their state to pending, verified, blocked. Only verified users have access to mint form. User's page also has a search.

Admin dashboard - Users

Admin dashboard - Settings

Superadmin (specified in .env) can interact with smartcontract and start or stop the sale. Visibility of minting form also depends on that setting.

Superadmin can send emails to all verified users, that the sale has begun.

Admin dashboard - Settings

User dashboard - Home

Users have access to home page, where they can find information about the collection and mint form.

User dashboard - Home

Minting

Minting

User dashboard with minted token

User dashboard with minted token

Private page for NFT holders

Only NFT holders have access to "Private page".

Private page

Provenance page

Page with the provenance hash. Script of the calculating provenance hash is available in the repo.

Provenance page

Description

This project gives you the ability to create and deploy smartcontract, create the list of people, who will be elegible to mint NFT from your collection. After that people will have access to Private page, available only for NFT holders. You can extend the project as you want.

Let's explore users experience.

1) Users get to the site, read the information about your project and collection.

2) Users register using their wallet and fill in all necessary information. After that the dashboard is available for them. From now, users are in the waiting list.

3) Admin need to check the users and make them verified. Users get the email (Mailgun integration), that they were verified.

4) Admin starts the sale. In the Settings tab there is a button for sending emails to all verified users.

5) Users get the email about the sale, go to the dashboard and mint the token.

6) After minting users will get access to Private page

Further steps is up to you!

More information you will find in repositories.

Link to Source Code

Web repo

Smartcontract repo

Permissive License

MIT

Background

I wanted to create a project, that can be useful for web3 developers or community builders even after the hackathon ends.

It might be difficult to organize the sale of NFT collection, especially, if you need universal whitelist, where you can add or remove people at any time. It's very important to unite like-minded people and have the ability to know more about them, before you give them access to your club.

That's why I've made that project. You can easily change it to suit your needs. It contains dashboard for admins to manage users, dashboard for users to mint tokens and get special access to "Private page".

I hope it makes someones life easier 😊

How I built it

This is the first time I was using the MongoDB, and I found it easy-to-start and easy-to-use.

You just need to create Mongo DB and this is it. Table will create automatically after you run the project. For superadmin I added a button "Setup indexes" to add additional indexes.

I used node driver for the project.

Stack and services:

Additional Resources/Info

Top comments (0)