Skip to content
This repository has been archived by the owner on Mar 28, 2023. It is now read-only.

OpenBazaar 2.0 Desktop Client (talks to openbazaar-go server daemon)

License

Notifications You must be signed in to change notification settings

OpenBazaar/openbazaar-desktop

Repository files navigation

OpenBazaar Client v2

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.

Build Status

Getting Started

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.

Installation

  1. Navigate to the directory you cloned the repo into.
  2. Enter npm install

Running

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.

Linux Troubleshooting

If you see an ENOSPC error after trying npm start and you are using Linux, you may need to do the following:

  1. Enter this on the command line: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

For Arch Linux add this line to /etc/sysctl.d/99-sysctl.conf: fs.inotify.max_user_watches=524288

  1. Execute: sysctl --system

This will prevent your system from having errors due to too many files being watched.

Linting

npm run lint will run eslint on the JS files.

npm run lint:watch will run eslint on any JS file changes.

Testing

npm run test will execute test files in the test folder.

npm run test:watch will execute the tests on any file changes.

Built With

Contributing

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.

License

This project is licensed under the MIT License. You can view LICENSE.MD for more details.