class-project | nullService provider defines the phases of the project
kandi X-RAY | class-project Summary
kandi X-RAY | class-project Summary
class-project is a JavaScript library. class-project has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.
class-project
class-project
Support
Quality
Security
License
Reuse
Support
class-project has a low active ecosystem.
It has 0 star(s) with 0 fork(s). There are 1 watchers for this library.
It had no major release in the last 6 months.
class-project has no issues reported. There are 13 open pull requests and 0 closed requests.
It has a neutral sentiment in the developer community.
The latest version of class-project is current.
Quality
class-project has no bugs reported.
Security
class-project has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
License
class-project is licensed under the MIT License. This license is Permissive.
Permissive licenses have the least restrictions, and you can use them in most projects.
Reuse
class-project releases are not available. You will need to build from source code and install.
Installation instructions are available. Examples and code snippets are not available.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of class-project
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of class-project
class-project Key Features
No Key Features are available at this moment for class-project.
class-project Examples and Code Snippets
No Code Snippets are available at this moment for class-project.
Community Discussions
No Community Discussions are available at this moment for class-project.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install class-project
Update apt package manager: $ sudo apt update
Install git: $ sudo apt install git
Install Node.js from the repositories: sudo apt install nodejs
Install npm: $ sudo apt install npm
Install curl: $sudo ap-get install curl
Install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Close and reopen your terminal
Install Truffle: $ npm install truffle -g
Install Ganache CLI: $ npm install ganache-cli -g
Clone the repo: git clone https://github.com/JerryFireman/class-project.git
Navigate to client subdirectory of the class-project directory and install dependencies: $ npm install
Disable the Metamask extension if it is enabled (this application supports Metamask but it requires multiple users which makes it difficult to use Metamask since as far as I know Metamask injections only a single account): In Chrome, select three dots menu on upper right, more tools, extensions, disable Metamask.
Compile the contracts and run tests: $ truffle test
Run Ganache CLI: $ ganache-cli
Deploy the contracts to the Ganache blockchain: $ truffle migrate --reset
Navigate to the client subdirectory of the repo clone directory: cd client
Run the React app: $ npm run start
A new browser window should open with a default project named "Sample Project"
Create a phase for the project by filling in the form under "Phase Structure of this Project. Enter a name for the phase, and an initial and final payment. The difference between the initial and final payment is that if the client cancels the project during the phase, the initial payment goes to the service provider as compensation for work completed to date while the final payment is returned to the client. When the form is filled in, click "Define new phase" and the phase will appear in the phase structure of the project. Create several more phases if you wish.
Once the phase structure is completed, the client must approve the phase structure by pressing the "Approve phase structure" button.
Before the project can begin, the client must deposit enough funds to cover the initial and final payments for the first phase of the project. Fill in the amount of eth to deposit in the "Deposit funds" form in the client dashboard and press the button to make the deposit. As soon as the blocks are mined, the deposit will appear in the client balance under "Overview of current project: Sample Project".
Next, the first phase can be started by pressing "Start phase" in the service provider dashboard. Notice how the client's deposit moves from the client balance to the escrow balance. It is now being held by the contract in escrow and cannot be withdrawn by either party.
As a next step, approve the first phase by pressing the "Approve current phase" button in the client dashboard. The funds to pay for the phase now move from the escrow balance to the service provider balance.
You can now enter the amount earned by the service provider in the first phase in the "Withdraw funds" form in the service provider dashboard and press the button to make the withdrawal. Note how the service provider balance is updated.
Finally, you can experiment with the functionality for cancelling a phase. Make the required deposit for and approve the next phase as explained above. Then instead of approving the phase, cancel the phase from either the service provider or client dashboard. If you experiment with cancelling from both dashboards, you'll see that whichever party initiates the cancelation is penalized by losing the initial payment. This incentivizes the parties to cooperate with eachother to complete the project.
Install git: $ sudo apt install git
Install Node.js from the repositories: sudo apt install nodejs
Install npm: $ sudo apt install npm
Install curl: $sudo ap-get install curl
Install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Close and reopen your terminal
Install Truffle: $ npm install truffle -g
Install Ganache CLI: $ npm install ganache-cli -g
Clone the repo: git clone https://github.com/JerryFireman/class-project.git
Navigate to client subdirectory of the class-project directory and install dependencies: $ npm install
Disable the Metamask extension if it is enabled (this application supports Metamask but it requires multiple users which makes it difficult to use Metamask since as far as I know Metamask injections only a single account): In Chrome, select three dots menu on upper right, more tools, extensions, disable Metamask.
Compile the contracts and run tests: $ truffle test
Run Ganache CLI: $ ganache-cli
Deploy the contracts to the Ganache blockchain: $ truffle migrate --reset
Navigate to the client subdirectory of the repo clone directory: cd client
Run the React app: $ npm run start
A new browser window should open with a default project named "Sample Project"
Create a phase for the project by filling in the form under "Phase Structure of this Project. Enter a name for the phase, and an initial and final payment. The difference between the initial and final payment is that if the client cancels the project during the phase, the initial payment goes to the service provider as compensation for work completed to date while the final payment is returned to the client. When the form is filled in, click "Define new phase" and the phase will appear in the phase structure of the project. Create several more phases if you wish.
Once the phase structure is completed, the client must approve the phase structure by pressing the "Approve phase structure" button.
Before the project can begin, the client must deposit enough funds to cover the initial and final payments for the first phase of the project. Fill in the amount of eth to deposit in the "Deposit funds" form in the client dashboard and press the button to make the deposit. As soon as the blocks are mined, the deposit will appear in the client balance under "Overview of current project: Sample Project".
Next, the first phase can be started by pressing "Start phase" in the service provider dashboard. Notice how the client's deposit moves from the client balance to the escrow balance. It is now being held by the contract in escrow and cannot be withdrawn by either party.
As a next step, approve the first phase by pressing the "Approve current phase" button in the client dashboard. The funds to pay for the phase now move from the escrow balance to the service provider balance.
You can now enter the amount earned by the service provider in the first phase in the "Withdraw funds" form in the service provider dashboard and press the button to make the withdrawal. Note how the service provider balance is updated.
Finally, you can experiment with the functionality for cancelling a phase. Make the required deposit for and approve the next phase as explained above. Then instead of approving the phase, cancel the phase from either the service provider or client dashboard. If you experiment with cancelling from both dashboards, you'll see that whichever party initiates the cancelation is penalized by losing the initial payment. This incentivizes the parties to cooperate with eachother to complete the project.
Support
For any new features, suggestions and bugs create an issue on GitHub.
If you have any questions check and ask questions on community page Stack Overflow .
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page