Giter Site home page Giter Site logo

dpanc's People

Contributors

aasimsayani avatar geleeroyale avatar jakobsandberg avatar kevinlilu avatar yalormewn avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dpanc's Issues

[Display] Switching Pages Changes Query

When switching from dashboard to another page (i.e. Contact Us) followed by going back to the dashboard leads to the data "disappearing", but only takes a click on another filter (3 mo or 6 mo) to bring the data back.

[Design] Provide global statistics

It would be extremely useful for users to see how their numbers are compared to other people.

This story is to design how we will store user's data in a global store of some kind.

Create csv parser

We need a service to parse incoming csv files and prepare them to be stored into IPFS

Setup Truffle

We need to setup Truffle so that we can test & deploy our contracts.

This task is to setup a basic Hello World contract and setup a basic test for it (including ganache setup).

Upload user data to IPFS

When a user uploads their data on our basic user upload form, the data should be saved to IPFS.

The IPFS hash should eventually be saved to our dPanc contract, but the scope of this story is just to upload to IPFS and log the hash returned.

Spike OrbitDB

https://github.com/orbitdb/orbit-db

The current IPFS implementation that saves hashes on the Ethereum network does not scale well as time passes. 1 transaction is required per month of data stored.

We should look into OrbitDB as they offer a database implementation on top of IPFS. This allows us to create a database (data store) for each user, and save the hash that points to the OrbitDB database for that user. This means we only need to use 1 transaction to save the database hash, and subsequent updates to the user's data do not require any transactions.

Integrate web3 via MetaMask

Integrate web3 into our web app by leveraging the browser's MetaMask (if exists).

The scope of this task is to be able to detect MetaMask and to extract the user's first account address to display on the upload form as a pre-filled box.

Create basic user upload form

Create a basic upload form on home page using Google Material-UI framework (without metamask integration).

Should be static and buttons should not have any functionality.

Store OrbitDB address in dPanc contract

Once a user submits their data for the first time, we should create an OrbitDB database for them and upload the OrbitDB address to our dPanc contract.

We will name the user's OrbitDB database as the keccak256 hash of their Ethereum address (using web3 utils).

Another per-requisite is #27 as the dPanc contract needs to be done and deployed.

[Feature] Allow user to view last X months of data

Upon uploading a month of data, users are directed to the dashboard page which show stats for that month.

The user should be able to select how far back to look and generate statistics for.

The basic implementation can consist of having a couple additional buttons at the top of the dashboard (Last 3 Months, Last 6 Months, etc). When a user clicks on the button, then we will fetch the data pertaining to the time period and run calculations to render on the dashboard page.

Use separate views/pages

The Form view should be separate from the Dashboard view.

We will also want to have a sidebar or top navbar.

Design User dashboard (report) view

Should have a mock up of where each graph/data goes in the view.

Also should list out what data we will be calculating and showing to the user.

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.