hernandev / utopian-vue-demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Utopian.io v2

This repository is the home of the new Utopian.io frontend. Vue.JS & Quasar Framework based.

Contributions.

This is a early-stage project, meaning changes happens fast. Before putting work contributing, be sure to open a proper issue to discuss your intention and receive proper advice.

Project Details.

Some information about this project.

Architecture.

So far, the frontend is completely client-side only, meaning no server is required to run the application. Anything that can be client-side, without server dependency, should be.

Coding Standards.

  • Keep components minimal.
  • Security is the primary concern.
  • Javascript Standard Style (enforced by ESLint)
  • PUG (ex-Jade) templates.

Security.

The application, does not store credentials on server. Instead, SteemConnect implicit grant is used and the token lives on client-side only, and the client side is the solely responsible for broadcasting operations.

Any sensitive data stored on browser is strongly encrypted with AES-256-GCM though WebCrypto API.

A secret encryption key is handled by the browser, in a non-exportable manner, meaning the local encryption keys (which are safely random) are not visible, not even for the application.

It means a browser security breach would be required to compromise the data.

Also, care is taken on the actual token handling, SteemConnect and any other broadcasting drivers are deep cloned before operations, and the cloned instances are destroyed after usage (avoid having tokens on memory at any time, every action requires decryption-usage-zeromem).

PIN codes for PBKDF2 derivations are a secondary goal.

@TODO improve encryption process documentation.

Install

Be sure to have a .env file on the project root folder. The same can be created using .env.example as base.

Install dependencies.
npm install
Run Development Server
npm run dev
Production Builds
npm run build

About

License:MIT License


Languages

Language:JavaScript 37.8%Language:Vue 26.3%Language:CSS 20.6%Language:HTML 15.4%