Open Collective Frontend
Foreword
If you see a step below that could be improved (or is outdated), please update the instructions. We rarely go through this process ourselves, so your fresh pair of eyes and your recent experience with it, makes you the best candidate to improve them for other users. Thank you!
Development
Prerequisite
- Make sure you have Node.js version >= 10.
- We recommend using nvm:
nvm install
.
Install
We recommend cloning the repository in a folder dedicated to opencollective
projects.
git clone git@github.com:opencollective/opencollective-frontend.git opencollective/frontend
cd opencollective/frontend
npm install
Environment variables
This project requires an access to the Open Collective API.
By default, it will try to connect to the Open Collective staging API, you don't have to change anything.
In case you want to connect to the Open Collective API running locally:
- clone, install and start opencollective-api
- in this project, copy
.env.local
to.env
.
Start
npm run dev
Tests
To run the tests:
- for pages and components use
npm test
- for end-to-end (e2e) tests using Cypress see our dedicated guide.
To update:
- Jest snapshots: run
npm run test:update
- Translation files: run
npm run langs:update
- GraphQL schema for ESLint: run
npm run graphql:update
Styleguide
We use React-Styleguidist to develop and document our React components in isolation with styled-components and styled-system.
More info: docs/styleguide.md
Localization
Translating the interface doesn't require any technical skill, you can go on https://crowdin.com/project/opencollective and start translating right away!
We're currently looking for contributions for the following languages:
- French
- Spanish
- Japanese
Want to add a new language for Open Collective? Contact us, we'll be happy to help you to set it up!
Contributing
Code style? Commit convention? Please check our Contributing guidelines.
TL;DR: we use Prettier and ESLint, we do like great commit messages and clean Git history.
Deployment
This project is currently deployed to staging and production with Heroku. To deploy, you need to be a core member of the Open Collective team.
More info: docs/deployment.md
Discussion
If you have any questions, ping us on Slack (https://slack.opencollective.org) or on Twitter (@opencollect).