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 is on ease-of-use, security, and privacy.
The technology stack includes:
- 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 - For Android development:
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.gitDon't forget to replace YOUR_USERNAME with your GitHub username.
cd crypto-terminal
npm install
gruntOpen your browser and navigate to localhost:3000. You should see the settings screen the first time you open the app.
Introduction to some of the less obvious folders:
build/- Temporary files used during the build process by Grunt.css/- CSS you should be modifying. Gets processed during the Grunt build.exports/- Files that are processed by browserify, which processes node.js modules so that they can be run in a browser.grunt/- Grunt task configuration files go here.html/- Source HTML files go here (templates for example).scripts/- Miscellaneous script files go here.tasks/- Custom Grunt tasks live here.js/- JavaScript you should be modifying. Gets processed during the Grunt build.www/- Final output from the build process. Minified and uglified, this is served in the app once you run it.
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 wallet applications:
- Mycelium Testnet Wallet - A mobile testnet wallet application for Android.
- Electrum - A desktop wallet application which can be run in testnet mode from the command line like this:
electrum --testnet
- "Faucets" can be used to obtain testnet bitcoin:
Valid testnet master public key that you can use while developing:
tpubDD8itYXaDtaTuuouxqdvxfYthFvs8xNbheGxwEcGXJyxrzuyMAxv4xbsw96kz4wKLjSyn3Dd8gbB7kF1bdJdphz1ZA9Wf1Vbgrm3tTZVqSs
- Testnet wallet applications:
- Electrum-LTC - A desktop wallet application which can be run in testnet mode from the command line like this:
electrum-ltc --testnet
- Electrum-LTC - A desktop wallet application which can be run in testnet mode from the command line like this:
- "Faucets" can be used to obtain testnet litecoin:
Valid testnet master public key that you can use while developing:
tpubD6NzVbkrYhZ4YLXXEvJuNSnv3duP7VvCVG2ybxbbfcdJrgfvyfqjLdS2mntHXAr5YVLQvGqSdwa5j62bJhPCGTxX6xXeJp4CtRw494UKG96
- Testnet wallet applications:
- monerujo - A mobile, light-weight wallet app for Monero. If you are running an older version of Android, you can install the app from an
.apkthat you can download from the project's GitHub repo.
- monerujo - A mobile, light-weight wallet app for Monero. If you are running an older version of Android, you can install the app from an
- "Faucets" can be used to obtain testnet monero:
Sample testnet settings that you can use during development:
| Setting | Key | Value |
|---|---|---|
| Public Address | monero.publicAddress |
9xmkWjzAB8JguD7JvkJxPHgMwkf7VP5v3Z5eSNmRMdoeCEnoVu6eGUbZT3FQ3Q8XrGihNEbb4qGhqHHGK5kWy9chU3URbaF |
| Private View Key | monero.privateViewKey |
136674e3e6868bb04d4ef2674f97c00166f5f7aa67185bdda97cde8ecfe4f609 |
!! TODO !!
Before continuing, be sure you already have the requirements for Android development.
Create your signing key:
npm run generate-android-signing-keyRun the APK build script:
npm run build-signed-apkIf successful, it should have created a new .apk file at the following path:
./platforms/android/app/build/outputs/apk/release/app-release.apk