Git Product home page Git Product logo

connect-ed's Introduction

Connect-Ed

Built by

Introduction

What follows is an abridged version of the full pitch deck attached to the repo in the /pitch folder. Please reference for detailed descriptions.

Overview

  • The user logs in by scanning the QR code from the uPort app on their mobile phone 


  • There are several different accounts or views in the App: 


    • The ISP Admin Account.

    • The Region Admin Account

    • The Public View 

    • A Demo Account
  • The Accounts Smart Contract contains logic for user account management including:

    • Allowing a user to sign up with their uport DID
    • Getting a user from the Ethereum blockchain
    • Checking the user is valid against the address in the uPort DID registry
    • Allowing the owner to invite other users to have specials roles in the system
  • The Donations Screen allows anyone to donate to the project in ETH

    • The Donations Smart Contract contains logic for donation management :
    • Includes functions to receive donations
    • Allows a region administrator to withdraw an amount of funds to that region.

  • The Connections Screen allows anyone to interactively view the current connectivity statistics.
    • The network connectivity history can also be visualised by date
    • There is an admin page which allows the user that deployed the contracts to set up roles within the system

  • The ISP Admin Screen allows ISP's to upload connectivity stats for a region for a given time period.

    • The connectivity data uploaded is stored in IPFS as it needs to be publicly available.
    • The file upload format must use a valid region id, ISP id and region admin.
    • The ISP smart contract contains functions to get the data files from IPF
    • a function to set the region for an ISP and a function to upload the data files to IPFS 

Usage

Please install all dependencies before doing anything. Use npm install or yarn

To run it locally, please remove the contracts folder in client/src/ folder, as it is there to be used on the live demo.

With Linux or OSX, just run the local_demo.sh script at the project root folder.

Please, make sure to have a local ipfs node instance running.

Assumptions

ISP

  • ISP will upload valid data, not currepted data, neither fake

General

  • Most imputs have not validation, be sure to write valid data, like in donation window.

How to run the demo

The easiest way to run the demo is by running the local_demo.sh script, but in case you want to run in entirely by hand, here's a quick intro.

First of all, install all dependencies, remove the contracts folder in client/src/ folder, then go to ethereum folder and start a local ganache network by running npm run start:ganache:dev and then, without closing it, run npm run deploy:ganache.

Now, go to client folder, run npm run link-contracts to create a folder link in order to be able to use the contracts from the frontend.

Please make sure to have a ipfs node running locally or copy the .env.production to .env.development

To start the frontend just do it with npm run start from the client folder.

Demo Account View

In case you do not want to sign up, you can see the system by using either ISP or region admin demo accounts. You can also view a working demo here: https://connect-ed.netlify.com

Credits

Thanks to wilawantama for the favicon Thanks to Tahir Khan for the tree logo Thanks to flaticon for the wifi icon Thanks to Roundicons for the avatar

connect-ed's People

Contributors

moranthomas avatar vibern0 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

moranthomas

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.