You did some Solidity tutorials, and now you're stuck because you don't know what else to build?
Let me help you out by giving you three simple ideas for dApps, perfect for beginners!
🧵👇🏻
1️⃣ A Voting dApp
Build a dApp that lets users create elections. Any user can start an election and choose a registration period, a voting period, and an ending time.
During the registration period, users can sign up as a candidate.
Once the registration period closes, no one should be able to register anymore. Instead, the voting period starts where anyone can vote for their favorite candidate.
Your frontend should show open elections, the current period, the time remaining, and the candidates.
Users should be able to vote through a click of a button. After this, they shouldn't be able to vote for the same election again.
All data should, of course, be stored on the chain.
2️⃣ A Simple Auction House
Let users register an image for auction. Allow them to set a minimum bid, a reserve price (the minimum price that should be achieved for the auction to succeed), and the beginning and end of the auction.
Users should be able to bid with crypto in their wallets. The highest bid wins when the auction ends.
Your dApp should always ensure that people can only bid with coins they really have, and connect your dApp to MetaMask so users can conveniently take part in the auctions.
Your frontend should conveniently enable users to find auctions, bid on certain ones, and maybe contain a gallery to view purchases.
All data should, of course, be stored on the chain.
Take a look at IPFS if you need a way to store the images.
3️⃣ A Survey App
Anyone can create a survey, add options to choose from, and define whether users can give only one or multiple answers.
For every survey taken, the dApp should reward users some crypto to pay them for their time.
The creator of the survey should, of course, be able to set this amount upon creation.
Your frontend should show all surveys currently ongoing and allow users to participate in a detailed view. For example, creators could have an overview of their open and closed surveys.
Don't forget that surveys should end at some point. So this could be a great setting for the creator of a survey.
Your dApp should store all data on the chain.
Once again, MetaMask might be a good choice.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
This is a short introduction to Solidity, the programming language used to create smart contracts on the Ethereum VM.
🧵👇🏻
1️⃣ What Is Solidity?
Solidity is an object-oriented, high-level programming language designed to implement smart contracts on the Ethereum Virtual Machine.
It is statically typed, supports inheritance, libraries, and complex user-defined types.
Solidity is a domain-specific language. Besides Python or JavaScript, which are general-purpose languages, Solidity is only meant to be used for smart contract development.
Do you know what many dApp developers struggle with?
Which data to put on-chain. More data on the chain can drive the cost up. Too much data might render your app unusable. Storing fewer data might not be an option.
Here are some ideas for you to fix this. 🧵👇🏻
1️⃣ Use A Dedicated Database
This approach will make your dApp into an app. If you bring in central data storage, you can circumvent the limits of some blockchains but it doesn't keep the promise of being decentralized.
You can store anything that you can't store on-chain in your database and associate it with a user. Whenever you need that type of data, you fetch it from your database.
Want to get into smart contract development and learn Solidity? Want to get into an area of software development where salaries currently rise through the roof?
Here are 5 awesome resources that help you to get into the language of the Ethereum VM!
🧵👇🏻
1️⃣ CryptoZombies
CryptoZombies is an awesome approach to teaching Solidity. You learn Solidity by basically playing a game, and it's free!
Learning through CryptoZombies definitely isn't as dry as the zombies are themselves!
EthereumDev gives you a full free course that covers everything you need to know in the beginning. It also covers interacting with the blockchain through JavaScript, which definitely helps you to build your own dApps!
Code Reviews are an awesome way to use the experience and knowledge of a team to create good software. Not all review processes are enjoyable, though.
Here are 6 tips to make your review process better and more enjoyable for everyone!
🧵🔽
1️⃣ Make Expectations Clear
A good review process should both be standardized and individual. The terms of the process should be written down and transparent for everyone on the team. Each team member should know what is expected of them and all team members should agree ...
... on the terms. Changing the terms should always be a democratic process within the team. If the team disagrees on changes or terms, it should discuss the issues until there is consent.
On the other hand, the process should be flexible enough to allow for individuality.