Code Monkey home page Code Monkey logo

blockenergy's Introduction

Blockenergy - dAPP para intercambios de energía en Blockchain v.1.10.0

Esta dApp está basada en mi Trabajo de Fin de Grado de Ingeniería Informática de 2019, el cual puedes encontrar aquí, en una versión más actualizada.
Esta versión no incluye los pagos en criptomonedas ni la conexión IoT de las baterías. Utiliza la red de pruebas de Etherscan Ropsten. Inspirado en el repositorio de openberry

Prerrequisitos

  • Node - v10.x.x
  • npm - v6.x.x

Creado con:

  • Solidity - Lenguaje de programación de los smart contracts para Ethereum
  • Vue.js - Framework de Javascript utilizado
  • web3.js - Librería de Javascript utilizada para interactuar con la blockchain de Ethereum
  • Remix - IDE de Solidity para crear, compilar y probar smart contracts
  • Metamask - Plugin de Chrome que hace de puente entre la dApp y el navegador

Dependencias:

"ethereum-blockies-base64" - Librería para generar identidades como bloques en PNG, codificados en base64
"vue-router" - Enrutador para Vue.js
"vuex" - Librería para gestión del estado (State Management) de aplicaciones Vue.js
"sweetalert" - Reemplazo para la función alert de Javascript
"Bootstrap 4" - Framework de CSS
"jQuery" - Biblioteca de Javascript para simplificar las interacciones con el DOM
"css-circular-prog-bar" - Progress bar en CSS puro.

Ejecución

Clona este repositorio en local e instala las dependencias como sigue:

git clone https://github.com/yeadan/blockenergy
cd blockenergy
npm install

Instala la extensión de Metamask, que será el enlace con la blockchain. En el metamask escoge la red de pruebas Ropsten y créate algunas direcciones con ethers.

Una vez instalados el Metamask y todas las dependencias se podrá ejecutar en local con el comando:

npm run dev

Este repositorio está online en Netlify

Estructura

Inicio

Página de inicio. Un Carousel con 3 imágenes como presentación


Comprar

Página donde se pueden ver las ofertas de energía y comprarlas

Restricciones:
No se puede aceptar una oferta propia
No se pueden aceptar ofertas ya ejecutadas
No se puede comprar energía si no hay espacio suficiente en tu batería


Vender

Página para poder crear y borrar ofertas de energía

Restricciones:
Solo se ven las ofertas propias
Solo puedes vender una cantidad de energía si está disponible en tu batería
Los precios y las cantidades de las ofertas tienes que ser números positivos
No se pueden poner a la venta menos de 100w


Historial

Página de historial de ventas. Enseña las direcciones del comprador y del vendedor, la cantidad de energía vendida, la fecha en que se puso a la venta y los precios de venta (con su equivalencia en Ether del momento de la venta)


Batería (No implementado)

La idea es que en la página de compras y ventas esté a disposición del usuario el nivel de su batería, y con ese nivel poder llevar un control de las compras y las ventas. Al no tener acceso, en la implementación, a ninguna batería, solo aparece una batería donde se le asigna un número aleatorio (con un http GET externo para que se acerque a cómo sería realmente). Esta cantidad es la que se irá utilizando para las compras y ventas, donde los indicadores están hechos únicamente con CSS.

Próximos cambios:

Hecho v10:

General: Reconstruido el proyecto con webpack 4
General: Modificado ancho columna batería/contenido
General: Actualizado web3.js a versión 1.6.0

Donaciones

Buy Me A Coffee

BTC: 32kZW9Z381DDPn54Sho8U5jQ53UhLC8rTv

blockenergy's People

Contributors

yeadan avatar

Watchers

 avatar

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.