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.
- 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
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.
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.
It's a good idea to test your application without risking real money, which is why the bitcoin testnet exists.
- Bitcoin - How it works - A decent starting point if you are totally new to bitcoin and cryptocurrency.
- Testnet Bitcoin Faucet - Get testnet bitcoin that you can use for testing purposes.
- Mycelium Testnet Wallet - The Mycelium bitcoin wallet for Android, but for Bitcoin's Testnet.
Valid testnet master public key that you can use while developing:
tpubDD8itYXaDtaTuuouxqdvxfYthFvs8xNbheGxwEcGXJyxrzuyMAxv4xbsw96kz4wKLjSyn3Dd8gbB7kF1bdJdphz1ZA9Wf1Vbgrm3tTZVqSs
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).