The Project deliverables is to Create an online marketplace that operates on the blockchain while learning the concept of blockchain and applying these concepts using solidity language.
There will be list of stores on a central marketplace where shoppers can purchase goods posted by the store owners. Contract market place will be manage by a group of administrators.Store Owner can manage their inventories and funds. shoppers can visit stores and purchase goods that are in stock using cryptocurrency.
- Should be A Truffle Project
- prerequisites:
install node : node -v install truffle : npm install -g truffle
install ganache-cli install dependencies: npm install - compile the application: truffle compile
- deploy to ganache: * truffle migrate *
- install react dependencies: npm install
- start front end server : npm start
- prerequisites:
- Smart contracts with the following requirements
- Properly Docuemented
- Have a circuit breaker design pattern and at least one other design pattern in Module 10 Lesson 1
For Details Please check Design Pattern Decisions
- Circuit Breaker
- Fail Early Fail loud
- Restricting Access
- State Machine Pattern
- Pull over push Payment
- Have security features to protect against at least two attack vectors outlined in Module 9 Lesson 3. Please check
avoiding common attacks
- SaftMath to prevent underflow or overflow
- Prevention of Re entrancy attack
- Avoiding tx.Origin
- Considering the use of transfer() , send() and Call()
- Use a library (SafeMath.sol, etc) or extend another contract
- SafeMath to avoid underflow or overflow
- Ownable and Pausiable to extend the contract to implement circuit breaker pattern
- Have a development server to serve the frontend interaction of the application locally
- Can run on localhost:3000 and interact with the backend blockchain infrastructure
- Frontend should work with web3.js / ethers.js, Infura and MetaMask to:
- Recognize and display current MM account
- Already available in the header
- Sign transactions that change a deployed contract’s state using MetaMask
- Avaialable in the Application . Application refresh needed
- Reflect the successful state change in the UI Application Details
- All features avaialable in here
- Recognize and display current MM account
- Have at least 5 tests for each smart contract Testing Considerations
- Smart contract should be deployed to a testnet Deployment Details in Ropsten
- IPFS to store Product Image and Seller logo