Giter VIP home page Giter VIP logo

enlight-me / decentralized-land-admin Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 4.0 25.23 MB

Decentralized Land Administration platform for the Ehtereum Blockchain

Home Page: https://transformatek.github.io/decentralized-land-admin

License: Apache License 2.0

HTML 2.60% CSS 1.40% JavaScript 78.76% Shell 0.14% Pug 0.25% Solidity 16.84%
blockchain land-administration land-registries foam-protocole geospatial-data reactjs h3 opengeospatialconsortium

decentralized-land-admin's Issues

Switch DeLA to Enlight.me Organisations

OLAdmin :

  • Name : DeLA (Decentrelized LandAmin)
    *contracts
  • add RRR
  • add dispute
    struct Transaction {
    address destination;
    uint value;
    bytes data;
    bool executed;
    }
    const ProjectStatus = Object.freeze({'Waiting':0, 'Rejected':1, 'Approved':2, 'Disabled':3})

*client:

  • dispute/bid

Manage feature geometry on IPFS/OrbitDB

  • Implement OrbitDB for managment of features geometries
  • save geometry hash to wkbHash of the smart contract
  • allow user to sketch his parcel on the map (Survey Points)

Testing

  • Write a sentence or two explaining what the tests are covering, and explain why you wrote those tests
  • 5 tests written in Javascript or Solidity (or both) ( If the contract is so simple as to not require 5 tests for full coverage, it is okay to issue 5 points for less than 5 tests)
  • Tests are properly structured (Each test sets up context, executes a call on the function to be tested, and verifies that the result is correct)
  • All tests pass

User interface

  • A development server to serve the front end interface of the application (It can be something as simple as the lite-server used in the truffle pet shop tutorial)
  • The app displays/recognize the current ethereum account
  • I can sign transactions using Metamask (or another web3 provider)
  • The app interface reflects updates to the contract state
  • You should be able to visit a URL and interact with the application

Handle Parcel registry

The parcel registry should be handled by the dApp.

  • In case dggsIndex is already claimed log an error
  • Add user address Index too

UI : switch to functionnal components and use react hooks

  • Click on the map should trigger "Add Feature to the Ledger"
  • Map should display all the parcels / Users parcels with a specific theme
  • Drawer should display the list of the users parcels

Switch to functionnal components

  • App.js
  • Map
  • Drawer
  • AppBar

Use react hooks for global state variables

  • createContext / useContext
  • useState

Testnet Deployment

  • Project includes a file called deployed_addresses.txt that describes where the deployed testnet contracts live (which testnet and address)
  • Deploy your application onto one of the test networks. Include a document called deployed_addresses.txt that describes where your contracts live (which testnet and address).
  • You can verify your contract source code using etherscan for the appropriate testnet https://etherscan.io/verifyContract

Update state variables names in conformance with LADM

The LAParcel and LA ParcelRegistry Smart contracts variables and the UI must be conform to LADM:

  • parcelType -> landUseCode (residential/commercial/industrial/agricultural)
  • extAddressID -> extAddress
  • type_code (type of land parcel : parcel / building)
  • source_reference (documents...)
  • status_code (transaction)
    "pending"; "current"; "cancelled"; "completed"; "loaded"; "lodged"; "historic"; "approved";
    "previous";"archived"; "assigned"; "requisitioned"; "unassigned"; "rejected";"dead";
    "to-be-transferred";
  • name_firstpart / name_lastpart
  • dggsIndex -> referencePoint

SOLA Application Action Type

"addDocument";
"approve";
"archive";
"dispatch";
"withdraw";
"cancel";
"requisition";
"validate";
"lapse";
"lodge";
"assign";
"unAssign";
"resubmit";
"transfer";
"validateFailed";
"validatePassed";

Security Requirements

  • Project includes a file called avoiding_common_attacks.md that explains at least 3 common attacks and how the app mitigates user risk.
  • explains what measures you took to ensure that your contracts are not susceptible to common attacks. (Module 9 Lesson 3)
  • Explain what measures you’ve taken to ensure that your contracts are not susceptible to common attacks (at least 3)
  • use MythX
  • use Mythril
  • use Slither

Record a demo

Record your screen as you demo the application, showing and explaining how you included the required components.

Design Pattern Requirements

Truffle : run on a local dev net

  • A project README.md that explains your project. What does your project do? How do you set it up?
  • I can run the app on a development server locally for testing/grading (or connecting to Rinkeby/Ropsten if required)
  • Your project should be a truffle project
  • All of your contracts should be in a contracts directory
  • Truffle compile should successfully compile contracts
  • Migration contract and migration scripts should work
  • Truffle migrate should successfully migrate contracts to a locally running ganache-cli test blockchain on port 8545
  • All tests should be in a tests directory
  • Running truffle test should migrate contracts and run your tests

Deploy to github pages

  • use github actions or travis CI
  • create github pages for the app and deploy the build with Rinkeby config

Stretch Goals

  • Project uses IPFS (The app is hosted on IPFS or allows users to interact with IPFS.)
  • Serve the UI from IPFS or a traditional web server
  • The project uses and upgradable design pattern for the smart contracts (Interfaces)
  • At least one contract is written in Vyper or LLL
  • The app uses uPort for user authentication and/or signing and sending transactions
  • The app uses the Ethereum Name Service to resolve human readable names to Ethereum addresses
  • The project uses an Oracle service such as Oraclize

User Stories

Creating several user stories can help the evaluator understand what your dApp is and how potential users are supposed to interact with it. User stories outline how users will interact with the application. They should be descriptions of end goals of the application rather than descriptions of features.

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.