Giter Site home page Giter Site logo

xheuz / blockchain-developer-bootcamp-final-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.4 MB

Create a decentralized Trust or Will that enable to transfer your digital assets to your love ones once you are gone.

License: MIT License

HTML 2.23% JavaScript 83.03% Solidity 14.57% Shell 0.17%
ethereum erc20 solidity blockchain smart-contracts dapp web3

blockchain-developer-bootcamp-final-project's Introduction

Onyx Trust

Introduction

This project aims to provide a dapp that works as a Trustee. Allowing to leave digital assets to somebody else as inheritance. read more

Certification as NFT Token

// Ethereum Address
0x13fd35d781550def2ffb86a7e1da4cc6782dee30;

Published

Other Files

Project Walkthrough

https://www.loom.com/share/6adbb17fe51c41cf9ec9875fd5dadde2

https://www.loom.com/share/f89ee036dde54eafa5b738f51e160ee1

Structure

truffle unbox react is used as scaffold for this project:

root
|__ client                          //frontend of the project
    |__ public                      //client entry point
        |__ ...
    |__ src                         //client source code
        |__ ...
    |__ ...
    |__ package.json
|__ contracts                       //solidity contracts
    |__ ...
|__ migrations                      //migrations for solidity contracts
    |__ ...
|__ scripts                         //bash scripts for install dependencies, deploy and running test
    |__ ...
|__ test                            //tests for solidity contracts
    |__ ...
|__ avoiding_common_attacks.md      //describes protection implemented for common attacks
|__ deployed_address.txt            //ethereum contract addresses related to contract in testnet
|__ design_pattern_decisions.md     //describes which patterns were used
|__ .gitattributes
|__ .gitignore
|__ LICENSE
|__ package.json                    //npm dependencies
|__ README.md
|__ truffle-config.js               //truffle auto-generated config file

Installation

ENVIRONMENT

Check complete environment used here

  • Check node version
> node --version
v16.1.0

PRE-REQUISITES

Installation of git is assumed.

  1. Install truffle globally
npm install -g [email protected]
  1. Install ganache-cli globally
npm install -g [email protected]

SETUP

  1. Clone the project
git clone [email protected]:xheuz/blockchain-developer-bootcamp-final-project.git xheuz-project
  1. Go to project directory
cd xheuz-project
  1. Install dependencies
npm install # or yarn
  1. Go to client directory and install dependencies
cd client
  1. Install dependencies
npm install # or yarn

RUNNING TESTS

  1. From the root of the project
truffle test

RUN PROJECT

  1. Open Ganache UI and setup a local testnet on port 8545

  2. From the root of the project, migrate from the cli.

truffle migrate --network develop
  1. From the root of the project, go to client directory
cd client
  1. Start client
npm run start # or yarn start
  1. Stat using the project on http://localhost:3000/

blockchain-developer-bootcamp-final-project's People

Contributors

xheuz avatar

Watchers

 avatar

blockchain-developer-bootcamp-final-project's Issues

Final project feedback

Hi @xheuz - This is Amma, one of the mentors on the bootcamp.

First of all, Congratulations! Your Final Project met the requirements set! You should be receiving formal notification soon, if you haven't done so already.

Here is my feedback. I hope you will find it useful.

Frontend comments:

  • Very nice frontend.
  • Very good functionality developed around toggling user accounts
  • Automatically detects Metamask. Really neat UX here.
  • Displays user's account but would be good to display the contract address and the testnet deployed to.
  • Did not accept an input of less than 1 ETH or fractions of ETH......Should have text displayed on screen to notify user of this... Only noticed this was the issue by following the video exactly.

Testing comments:

  • 19 passing tests
  • Tests logically structured and cover a number of scenarios.
  • Sensible use of describe() to group tests into sensible sets.
  • Security measures for Access Control and Reentrancy implemented through established OpenZeppelin functions
  • Modifier and require() correctly implemented for input validation
  • Did not accept an amount of less than 1 ETH and only whole mulyoples of ETH. No text was visible on the screen to inform the user of this. Only worked out the issue by following the exact steps in the video.
  • Neat way how you do not display trusts when you switch to another account. I also like the functionality implemented for cancelling trusts and disabling buttons according to the context.

Design and Security Comments

  • Good concise code.
  • Logically laid out code with ample comments to aid understandability.
  • A very good README with an informative summary and a comprehensive set of instructions for installation and testing.
  • Source code has a logical flow and is very well documented to NatSpec standards
  • Security and interface measures are enforced with a suite of OpenZeppelin libraries including Ownable and ReentrancyGuard.This demonstrates encouraging knowledge of trusted libraries and functions.
  • Modifiers and require() correctly used for validation.

Overall:

  • Very good final project submission.
  • A very intuitive and cosmetically pleasing interface. I loved it!
  • This final project demonstrates the key skills have been mastered and substantial progress has been made in the Developer's Bootcamp.

You have a promising future and I would highly recommend you continue the journey!

I hope you enjoyed the course!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.