Skip to content

bitcoinembassy/coinos

 
 

Repository files navigation

CoinOS

CoinOS is a mobile-friendly Point-of-Sale page that merchants can use to accept Bitcoin payments.

How it Works

  • You create an account and configure some basic parameters for your storefront like a name, logo, and bitcoin receiving address
  • You set an exchange rate to be used to convert from your local currency to bitcoin
  • CoinOS creates a custom webpage that you can bring up on a mobile device to generate payment requests
  • You enter a sale amount in your local currency and CoinOS converts it to bitcoin using your chosen exchange rate
  • CoinOS creates a QR code for the payment request with your receiving address and the sale amount encoded
  • CoinOS listens for transactions on the Bitcoin network and displays a notification when the requested amount is received at your address
  • The details of the transaction and the exchange rate used at the time of sale are recorded and made available in a convenient report

Technical Details

The site is programmed in HTML and Coffeescript using NodeJS and jQuery. Account details and transaction data are stored in a Redis database. Users are responsible for providing their own receiving addresses managed with whatever wallet they prefer, so CoinOS never stores any bitcoins.

We use the websocket payment notification API from http://blockchain.info/api/api_websocket to listen for and display payment notifications in real time. The bitcoin exchange rates are fetched from http://bitcoinaverage.com/

Installation

Install nodeJS (http://nodejs.org/) and redis (http://redis.io/) then:

On Ubuntu
nodeJS:
	curl -sL https://deb.nodesource.com/setup | sudo bash -
	sudo apt-get install -y nodejs

redis:
		 wget http://download.redis.io/releases/redis-2.8.17.tar.gz
		 tar xzf redis-2.8.17.tar.gz
		 cd redis-2.8.17
		 make
run redis:
		src/redis-server


git clone https://github.com/thebitcoincoop/coinos
cd coinos
npm install  
	nodejs install.js
	# Change the config.js.sample to config.js and add the admin credentials
	nodejs app.js

Now the app should be running at http://localhost:3000/

License

Copyright (C) 2012 Adam Soltys

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Lightweight Bitcoin Point-of-Sale Page

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 64.5%
  • CSS 28.0%
  • CoffeeScript 7.5%