R3 Corda: AEC Finance: Generic Contract: Construction (CTR-CNT)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
config
cordapp-contracts-states
cordapp
gradle/wrapper
lib
server
LICENCE
README.md
TRADEMARK
build.gradle
gradle.properties
gradlew
gradlew.bat
next.md
settings.gradle

README.md

CBC Hackathon 1

Overview

This CorDapp automates the following construction workflow:

  • A developer and a contractor agree on a job composed of milestones

  • For each of the job's milestones:

    • The contractor starts work on the milestone
    • The contractor completes work on the milestone
    • The developer inspects the work on the milestone
    • The developer accepts the work on the milestone
      • The developer can also reject the work on the milestone, in which case the contractor must continue work on the milestone
    • The developer pays the contractor for the work on the milestone

Running the CorDapp

  • Deploy a test network using the deployNodes Gradle task
  • Run the test network using the build/nodes/runnodes script
  • Run the webservers using either the runPartyAServer and runPartyBServer Gradle tasks, or the Run PartyA Server - Port 10020 and Run PartyB Server - Port 10021 run configurations
  • Run flows using the endpoints defined in FlowController
  • View states using the endpoints defined in StateController

TODOs

  • Subjobs/splitting of milestones into tasks
  • Percentage completion and payment
  • Retentions of 5%/3% (allow user to specify) per milestone that are paid once all milestones are complete
    • Of which 2.5% is paid one year later
  • Map descriptions to BIM XML
  • Architectural drawings as a property
  • Milestone deadlines
  • Mobilisation fee
  • Allow contractor to reject job
  • Include other legal documents such as tender etc when proposing a job
  • Allow milestone to be added, but
    • Not after final milestone has been completed
    • Not at an earlier stage than the latest completed milestone
  • Allow unfinished milestones to be modified
  • Provide total amount for project, and check milestones values don't exceed this
  • Provide status for overall job so job can be started separately of milestones
  • Capture individual, not just node, who started/reviewed/etc. milestone
  • Include documents as attachments when completing a job