# Sharetribe Starter App

[![CircleCI](https://circleci.com/gh/sharetribe/sharetribe-starter-app.svg?style=shield&circle-token=198451e83e5cecb0d662949260dbc3273ac44a67)](https://circleci.com/gh/sharetribe/sharetribe-starter-app)

This is a template application for a Sharetribe marketplace that can be extended and customised. It
is based on an application bootstrapped with
[create-react-app](https://github.com/facebookincubator/create-react-app) with some additions,
namely server side rendering and a custom CSS setup.

## Documentation

Documentation can be found in the [docs directory](docs/).

## Getting started

Install required tools:

* [Node.js](https://nodejs.org/)
* [Yarn](https://yarnpkg.com/)

Clone this repository and install dependencies:

    yarn install

## Development

To develop the application and to see changes live, start the frontend development server:

    yarn run dev

**You also need to [configure Google Maps api key](./docs/google-maps.md)**

**Known issues:**

* Adding/changing `import`s may not be synced properly with ESLint. You may see an error
  `Unable to resolve path to module` even though the module existing in right path. Restarting the
  server doesn't help. To solve the issue, you need to make a change to the file where the error
  occurs.

## Development Server

To develop the server setup, run:

    yarn run dev-server

This runs the frontend production build and starts the Express.js server in `server/index.js` that
renders the application routes in the server. The server is automatically restarted when there are
changes in the `server/` directory.

Not that this server does **not** pick up changes in the frontend application code.

## Tests

To start the test watcher, run

    yarn test

See more in the [testing documentation](docs/testing.md).

## Deployment

The `master` branch is automatically deployed to Heroku. If you want to deploy a feature branch,
setup the `sharetribe-starter-app` Heroku app and push the feature branch:

    git push heroku my-feature-branch:master

## License

This project is licensed under the terms of the Apache-2.0 license.

See [LICENSE](LICENSE)
