FlightSurety is a sample application project for Udacity's Blockchain course.
The Current State of the DApp includes just a testing purpose of buying an insurance and getting the payout after LATE_AIRLINE State.
Feedbacks regarding UI/UX are not implemented yet.
Truffle v5.0.2 (core: 5.0.2)
Solidity - ^0.4.24 (solc-js)
Node v10.7.0
This repository contains Smart Contract code in Solidity (using Truffle), tests (also using Truffle), dApp scaffolding (using HTML, CSS and JS) and server app scaffolding.
To install, download or clone the repo, then:
npm install
truffle compile
In the first terminal start ganache:
ganache-cli -m "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat" -a 100 -e 1000
In a second terminal run:
truffle compile
To run truffle tests:
truffle test ./test/flightSurety.js
truffle test ./test/oracles.js
In the first terminal start/restart ganache:
ganache-cli -m "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat" -a 100 -e 1000
In a second terminal run to start the Dapp:
truffle migrate
npm run dapp
To view dapp:
http://localhost:8000
In a third terminal start the Server for Oracle functionality:
npm run server
Wait for the oracles to register. In the server log a message will inform you "Oracles Registered: 80"
- First check the correct setup on the contract page and see if Contract is operational
- Open the Insurances Form on the Navigation at the top
- Select a flight and Press the "Buy Insurance" Button (no feedback)
- after every command you can reload the Insurance table below with the "Show/Update Insurances" Button
- in the Insurance Table you can update the flight status with "Get flight status"
- "Show/Update Insurances" is required to show the updated status
- for testing purpose you can request the flight status over and over again until you get the "AIRLINE_LATE" response
- When AIRLINE_LATE the button "Claim Insurance" is available.
- Check the Balances at the top if Insuree gets credited.
- Finally payout and Verify Balances
- Use Dapp Initialized accounts to populate
- Complete DApp UI/UX
- Work on feedback loops to UI/UX (returns contract calls)
- read on gas effieciency regarding this
- read and show submitted events
- Move more/all interaction to AppContract
- InsuranceState "Payable" logic --> find best solution