Development

Front-End

For the front-end, we decided to have two separate front-end projects. One for IOS, and the other will be an actual website which will be supported universally across devices. This allows us to have some flexibility, for example IOS could be expanded to include push notifications as well as performance optimizations (albeit this application is lightweight).

Front-End IOS Technologies

RxSwift

Allows for reactive/functional programming in Swift.

SnapKit

A library for responsive UI design.

Alamofire

Library that sends HTTP requests to a server.

Front-End Website Technologies

React

Front-end framework

Ant UI

UI library that allows for lightweight yet clean minimalistic look.

Framer-Motion

Animation library that allows for element animation and transitions.

Back-End

For the backend, we have a multitude of technologies used. The backend works by having a very small backend server whose only purpose is to create a smart contract and deploy it on the Ethereum node.

Back-End Technologies

Node.JS

Javascript runtime environment for running the multiple web and blockchain frameworks that compose our backend.

Truffle Suite

The javascript library for the compilation of smart contracts, and the simulation of ethereum blockchain for testing and demos. This allowed us to integrate the bytecode of our smart contacts in the backend of our website.

Express

A web application framework for handling the requests that are sent from front end applications to the backend.

Solidity

The ethereum smart contract language.

Web3.js

Library that deploys smart contracts from the backend to a specified ethereum node.

Checkout ECS 189F's homepage

This application was the term project for ECS 189F, a class about Distributed Ledgers at UC Davis.