ivanahepjuk / crypto-terminal

A merchant terminal app which allows payments by customers with multiple cryptocurrencies.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CryptoTerminal

The goal of this project is to create a mobile application that merchants can use to accept cryptocurrency payments in a variety of cryptocurrencies. The focus will be on ease-of-use, security, and privacy. In the beginning our goal is to support the following cryptocurrencies:

The technology stack will include:

  • Standard web technologies (HTML, CSS, JavaScript).
  • Backbone.js - A JavaScript library for developing complex web applications.
  • cordova - To wrap the web application and create builds for Android, iOS, and other mobile platforms.
  • nodejs - As a build tool.

Requirements

  • nodejs - For Linux and Mac install node via nvm. For Windows, use an installer from the nodejs website.
  • grunt-cli - npm install -g grunt-cli

Getting Started

Before continuing, be sure to download and install the project requirements.

To get the project files and start working locally, you should first create a fork. Then "clone" your fork of the project:

git clone https://github.com/YOUR_USERNAME/crypto-terminal.git

Don't forget to replace YOUR_USERNAME with your GitHub username.

cd crypto-terminal
npm install
grunt

Open your browser and navigate to localhost:3000. You should see the settings screen the first time you open the app.

Project Folder Structure

Introduction to some of the less obvious folders:

  • /tasks - custom Grunt tasks live here
  • /js - Javascript you should be modifying. Gets processed during the Grunt build
  • /css - CSS you should be modifying. Gets processed during the Grunt build
  • /build - temporary files used during the build process by Grunt
  • /www - output from the build process. Minified and uglified, this is served in the app once you run it

Developing with Cryptocurrencies

This project is focused on working with cryptocurrencies as a payment method. As such, you will need to know some basics about how cryptocurrencies work and how to develop applications that use them.

Bitcoin

It's a good idea to test your application without risking real money, which is why the bitcoin testnet exists.

Valid testnet master public key that you can use while developing:

tpubDD8itYXaDtaTuuouxqdvxfYthFvs8xNbheGxwEcGXJyxrzuyMAxv4xbsw96kz4wKLjSyn3Dd8gbB7kF1bdJdphz1ZA9Wf1Vbgrm3tTZVqSs

Litecoin

Valid testnet master public key that you can use while developing:

tpubD6NzVbkrYhZ4YLXXEvJuNSnv3duP7VvCVG2ybxbbfcdJrgfvyfqjLdS2mntHXAr5YVLQvGqSdwa5j62bJhPCGTxX6xXeJp4CtRw494UKG96

Tests

End-to-end tests are included in the project which allow automated testing (in a real browser) of the application's user interface. The tests use selenium and webdriverio. To run the tests:

grunt test:e2e

Note that selenium requires Java Run-time Environment (JRE).

About

A merchant terminal app which allows payments by customers with multiple cryptocurrencies.

License:GNU Affero General Public License v3.0


Languages

Language:JavaScript 70.5%Language:CSS 18.8%Language:HTML 10.7%Language:Shell 0.1%