/devolt

A decentralized solution focused on providing the electricity needed for electric cars.

Primary LanguageGoApache License 2.0Apache-2.0


DeVolt is a decentralized solution focused on providing the electricity needed for electric cars.
With monetary incentives, logistical facilitations, more accessible stations, and an open, fully transparent market.

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

🔋 Introduction

The automotive market's eagerness for the widespread adoption of electric cars is a common trend among countries with ESG agendas. It's also a desire shared by drivers who want more powerful cars with low maintenance and lower monthly costs. Among the promises, expectations, and advancements, one of the current obstacles to expanding the electric vehicle fleet is the lack of physical infrastructure, specifically charging stations. Alongside this scenario, there is a growing movement towards distributed energy generation in countries like Brazil. Why not connect these two points and offer a solution that provides liquidity for electricity producers while delivering cheaper energy to the aforementioned stations? We present DeVolt, a solution with a decentralized market engine for buying and selling energy based on the monthly consumption recorded by partner stations. To learn more, visit our whitepaper.

📚 Technical Vision:

This project was built using Golang as the main language and SQLite to store the application state, along with the ORM Gorm. Additionally, this project was built following the golang-standards 1, and from an architectural perspective, principles of hexagonal architecture 2 were implemented, such as dependency injection, using the Wire package for automatic initialization. This choice of architecture and technologies was made possible because we are building this application using the Cartesi infrastructure.

🏎️ Running:

Local node:

  • Build the application:
$ make build
  • Run locally:
$ cartesi run

A validator node on Fly.io:

  • Build the validator node image
$ make build
  • After that, you can follow the tutorial and after creating the necessary infrastructure to host your node, you can use the Docker image generated in the previous step called validator:latest

Application Tests:

  • To run the complete test suite, run the command below:
$ make test
  • To see the test coverage in the application, run the command below:
$ make coverage

🌐 Deployed Application:

Footnotes

  1. The folder structure chosen for this project is in line with the conventions and standards used by the Golang developer community.

  2. The entities, repositories, and use cases are in accordance with the standards provided for hexagonal architecture.