CONGO COIN
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 will need to connect to a wallet using Metamask the first time he lands on the website. The user should make sure that he has a connection to a network. The user should have some ether in the wallet with the linked account. Finally, the user 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" button. 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", the user should be 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 the "confirm" button, the user automatically becomes an "approver" and should see 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 Recipient address: I assume 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)
To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
- npm
npm install npm@latest -g
Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.
- Get a free API Key at https://infura.io and create a wallet at https://metamask.io
- Clone the repo
git clone https://github.com/chrismatgit/congo-coin-v1.git
- Install NPM packages
npm install
- Add your env config:
.env
MNEMONIC="" INFURA_URL= DEPLOYED_ADDRESS=
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Chris Matabaro - @chris_matabaro
Code Link: https://github.com/chrismatgit/congo-coin-v1
Project Link: https://congo-coin-drc.vercel.app/campaigns/about