# GSC Boilerplate App

This is a boilerplate web app suitable for static hosting, themed with GSC branding. It may be used as a basis to create standalone apps or apps which connect to a backend of some kind. The tools to connect to a GraphQL backend are included.

## Technologies

This boilerplate was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). The capability to install it as a [Progressive Web App (PWA)](https://developers.google.com/web/progressive-web-apps) has been enabled.

For UI, [React](https://reactjs.org/) and [Material-UI](https://material-ui.com/) are installed with [GSC theming](https://gitlab.gsc.org.uk/gsc-frameworks/gsc-material). [Redux](https://redux.js.org/style-guide/style-guide/) is used as a data layer for local state (along with [redux-persist](https://github.com/rt2zz/redux-persist) and [localforage](https://github.com/localForage/localForage) for persistence).

[React Router](https://reacttraining.com/react-router/web/guides/quick-start) provides routing capabilities, and [connected-react-router](https://github.com/supasate/connected-react-router) is used to store routing state in Redux. This is not essential so can be removed depending on developer preference.

[Apollo Client](https://www.apollographql.com/docs/react/) is installed for fetching and caching remote data from GraphQL servers, although no examples are included.

## Development

Clone the repo and install the required modules with e.g. `yarn install`.

Run `yarn start` in the project directory to open a live-reloading local version accessible at `http://localhost:3000`.

To build for a production deployment, run `yarn build`. Some small utilities to make deploying on [Netlify](https://www.netlify.com/) easier are also included.

## Troubleshooting

Happy to field any questions via [ben.galloway@gsc.org.uk](mailto:ben.galloway@gsc.org.uk).