Congo Coin is an online platform that empowers entrepreneurs to fund their projects.
How does it work? Behind the scene, there is a smart contract that allows us to manage different transactions.
Create a campaign
- To create a campaign, the user needs to connect his wallet using Metamask the first time he lands on the website. He/she should make sure that he/she is connected to a network. He/she should have some ether in the wallet with the linked account. He should be able to see existing open campaigns.
- After that, he can create a campaign by clicking the blue button "Create Campaign" or by clicking "+" in the header. The user should be able to put a minimum contribution in "Wei" and click on "Create". The user should be able to see the MetaMask notification asking to confirm the transaction. If the user "confirms" and has enough ether, he will be redirected to the Home page and see the created campaign. (In case of any error, The user will receive a notification).
Contribute to a campaign
- To contribute to a campaign, a user should make sure is connected. (ref: first Boulet of creating a campaign)
- The user puts the amount of ether in the field "Amount to Contribute" and then clicks the blue button "Contribute!" (In case of any error, The user will receive a notification).
- By clicking confirm, the user becomes automatically an approver and he should see both the number of approvers and campaign balance incremented.
Request
A request is created by the owner of the campaign to move money for different activities related to the campaign. To create a request, the user should give provide:
- The description: the campaign owner should provide a well-detailed explanation of why he needs to make the transaction)
- The amount: the user should provide the amount of ether needed.
- The Recipient address: I assume that the recipient is officially known to the public.
- After clicking to "create", The user should be able to see the MetaMask notification asking to confirm the transaction. If the user "confirms" and has enough ether, he will be redirected to the request page and see the created request. (In case of any error, The user will receive a notification).
- To approve a request a user should be an approver(He should have contributed in the past to the campaign)
- Only the campaign owner can finalize a request after getting enough approval(half plus one of the approvers and above of contributors)
- Note that the color differs for different statuses of a request. (Black = initiated but does not have enough approval.Green = has enough approval and is ready to be finalized. Gris= the request has been finalized)