This is the reference client for the OpenBazaar network. It is an interface for your OpenBazaar node, to use it you will need to run an OpenBazaar node either locally or on a remote server.
For full installable versions of the OpenBazaar app, with the server and client bundled together, go to the OpenBazaar download page.
To create a local development copy of the reference client, clone the client repository into a directory of your choice:
git clone https://github.com/OpenBazaar/openbazaar-desktop
Make sure you have Node.js and NPM installed. Node versions older than 8.9.2 or NPM versions older than 5.5.1 may not work.
This client uses Babel to compile ES6 JavaScript. You should be familiar with ES6 before modifying its code.
- Navigate to the directory you cloned the repo into.
- Enter
npm install
npm start
will:
- compile your Sass / re-compile on changes
- run BrowserSync in watch mode so the app automatically refreshes on JS and HTML changes and dynamically injects any CSS / Sass changes**.
- launch the Electron app
** At this time, the app will not refresh on main.js (or other root folder JS changes). This would require the entire Electron app to refresh and BrowserSync is only refreshing our browser.
npm run lint
will run eslint on the JS files.
npm run lint:watch
will run eslint on any JS file changes.
npm run test
will execute test files in the test folder.
npm run test:watch
will execute the tests on any file changes.
We welcome contributions to the reference client. The best way to get started is to look for an issue with the Help Wanted label.
You can also look for issues with the bug label. These are confirmed bugs that need to be fixed.
Contributions are expected to match the coding style already present in this repo, and must pass es-lint with no errors.
Contributions that make visual changes are also expected to match the repo's current style.
If you want to help with translations, please request to join the translation team at https://www.transifex.com/ob1/openbazaar.
You can request new languages there, and contribute to the translation of existing languages.
New languages are usually added when they reach 80% or more completion, and not removed from the client unless they fall below 60% for several releases.
This project is licensed under the MIT License. You can view LICENSE.MD for more details.