etthhack-submissions is a DApp for managing final project submissions during a hackathon. It aims to engage participating teams by exposing functionalities like upvoting and commenting on the projects of the fellow participants.
Checkout the Demo video.
Typical workflow looks like
-
An organiser creates a new hackathon and mentions the following details
- Transfers the moneybag of total prizes to the smart contract (
CreateHackathonfunction is payable). - Mentions the start and hackathon end time.
- Uploads additional hackathon details in the following format (JSON):
{ "description": "Biggest Ethereum hackathon", "submission_questionnaire": { "What is the name of your project?": {}, "Elevator pitch for your project": {}, "The problem that your project solves": {}, ... } }
This file is uploaded to IPFS and the Content Identifier is saved to the smart contract.
- Transfers the moneybag of total prizes to the smart contract (
-
Teams can register for the hackathon. At this point they provide a team name. The registered teams can be viewed on the hackathon details page.
-
Before the end of the hackathon, the teams need to submit their project by answering questions that were mentioned under the
submission_questionnairekey in the hackathon additional details file. -
The other teams can upvote and comment on projects. The upvoting functionality can be gamified by assigning bounties to correct winner predictions! (i.e. The event specific Bounties Network coins will be assigned to individuals who upvoted the (eventually) winner projects!
-
After the winners have been announced, the organizer can assign the prize bag in a desired ratio.
- Functionality to add ethereum addresses of individual team members to a team; so that team members can participate in upvoting and commenting.
- Make smart contract functions gas efficient.
- Write contract tests.
- This DApp is built on the embark framework! Building it with embark was pure breeze :D
- As a part of the above workflows, the following resources are first uploaded to the IPFS and their Content Identifier is saved to the smart contract.
- The hackathon additional details JSON file.
- Project submission (The answers to the submission questionnaire are concatenated and the string uploaded to IPFS).
- Comments on a particular project.
Keep ganache and IPFS instance independent of embark
ganache-cli --mnemonic "example exile argue silk regular smile grass bomb merge arm assist farm"
ipfs daemonnpm i
npm startThen load the mnemonic in metamask.