Giter VIP home page Giter VIP logo

group6blockchain's Introduction

Group6Blockchain

Group 6 assignment

BUILD A BLOCKCHAIN-BASED WEB APPLICATION PROTOTYPE

Short summary

We have built a prototype for a product that fetches your location from your current IP-adress and/or user entered data (city/country), called "GeoMI".

When you are logged in, you have the option to save your location data together with your user id and timestamp to a blockchain. There is an open validation functionality to ensure transparency - anyone at any time can validate the chain's integrity.

Background

The main target group for this product would be the transportation industry, a sector that in recent years has struggled to meet documentation needs stemming from increasing regulation pressure. We anticipate a demand for a blockchain solution that offers an automated logging service of driving time and route.

Method

The product is built in a browser run environment using Javascript.

Applications and future implementations

There are multiple ways of developing this product further according to match different customer needs.

For example, the transportation industry could implement it to securely and efficiently storing driving records. Mobile app features could be added to automatically fetch your location, for example every 5 mins, and generate a route that could be looked at by internal regulation, invoicing office, HR etc. Such a solution would also make it possible to minimize the risk of manual tampering of records and/or bypassing EU-regulations around driving hours.

Another transportation-related use could be delivery of goods from producer to client. By adding a QR-code to the item you could easily track the transportation route to be able to estimate delivery times in real-time, and also to track where the item gets stuck should it fail to be delivered.

group6blockchain's People

Contributors

cathywiden avatar fredrikcarlssn avatar carnie11 avatar awesst avatar eddeeken avatar kemikal avatar

Watchers

 avatar  avatar

group6blockchain's Issues

Add validate chain front end bits

From its learning: Eran kedja skall ha en öppen valideringsfunktion som användare skall kunna köra för att validera kedjan.

What does "öppen" mean..? Availiable in logged out mode?

-A validate chain-button
-A return (an alert maybe?) that tells the user if chain was valid or not.

Clean up logInAndOut module

Many thing in there could be broken out into sepearate functions, other modules etc. For example validate function - since it is a static function (availiable both logged in and out) it should be either in script.js, or in a module of its own.

Alert to log in for new user

Currently, new user clicks the purple arrow and the site gives no feedback whatsoever that they should log in to be able to add blocks.

Site throws an alert only if user has logged in and then logged out.

re-use searchInput for adding data, OR do geocoding

searchInput field: currently only IP address can be entered, all else returns null

vs

geocoding: user enters city and it converts that into latitude/longitude

Have already been looking into this and could not find a suitable free API that can do geocoding but now I have some new ideas -- I might give it another try. It's not a high prio thing right now.

Alternatively,
use this field to enter some other data, for example whatever we are adding to the chain and keep only the button to fetch coordinates.

Map or list logged locations

Registered user should be able to list out locations they have been logged in at and/or added data to the chain from.

Even better, display on a map.

Location script update

Opening new issue due to conflicts.

Nothing to actually do here.

Already clean script.

infoBox misaligned

on mobile view, infoBox gets out of alignment relative to the search box

if I take away rows 18-23 from the HTML, it's fixed. Can't spot trouble now.

geoMI

YOU can always run, But you can never HIDE

Toggle dropdown list buttons

Both for logged-in user's listing of own blocks, and for public users' most frequent logged locations display buttons

Currently, the lists become just doubled up upon second click. Refresh, or even better, toggle back to "no display" on second click.

reduce number of fetches --> debounce instead of hammering API

Debouncing:

I have, unknowingly, been hammering the API by attempting to fetch on every key press where it would autocomplete on user input.

See https://blog.bitsrc.io/debounce-understand-and-learn-how-to-use-this-essential-javascript-skill-9db0c9afbfc1

One well known use case for debounce is a search bar that gives suggestions while you type.

You may not want to fetch suggestions from your API every time a user presses a key, as this could create a huge load in the backend and hinder performance.

Instead, you can debounce this function, so only after the user has stopped typing for more than a certain amount of time (either pause between words or finished typing), only then a call to the API is made to fetch the suggestions.

Add content to eventlisteners "viewMyLocationsBtn" and saveLocationBtn"

In module logInAndOut there are currently two empty eventlisteners who need content as follows:

saveLocationBtn: The function in Chain module that creates a new block. (Exists but not finished)

viewMyLocationsBtn: A function for displaying the location currently logged in user has saved. (Not created yet)

Fix black background

Fick so that it scrolls down however long the list of the displayed blocks is. I now set it to 1000vh but that's a quick and dirty solution

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.