Coder Social home page Coder Social logo

ijjk / opencollective-frontend Goto Github PK

View Code? Open in Web Editor NEW

This project forked from opencollective/opencollective-frontend

0.0 2.0 0.0 45.34 MB

Open Collective Frontend. A React app powered by Next.js.

Home Page: https://opencollective.com

License: MIT License

Dockerfile 0.04% JavaScript 78.18% Shell 0.39% HTML 15.44% CSS 5.94%

opencollective-frontend's Introduction

Open Collective Frontend

Circle CI Slack Status Dependency Status Greenkeeper badge

Babel - Open Collective

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

  1. Make sure you have Node.js version >= 10.
  • We recommend using nvm: nvm use.

Install

We recommend cloning the repository in a folder dedicated to opencollective projects.

git clone [email protected]: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 Colllective staging API, you don't have to change anything.

If case you want to connect to the Open Collective API running locally:

Start

npm run dev

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.

Styleguide

We use React-Styleguidist to develop and document our React components in isolation with styled-components and styled-system.

Start

npm run styleguide:dev

Create a new component:

Only components with a matching example markdown file in the styleguide/examples/ directory will appear in the styleguide. After creating a new component in the src/components/ directory (i.e. src/components/NewComponent.js), make an example markdown file to go with it (i.e. styleguide/examples/NewComponent.md).

If you are creating a styled-component, you will need to annotate the export statement for React-Styleguidist to recognize it:

/** @component */
export default NewComponent;

Check out the React-Styleguidist docs for more details about documenting components with JSDoc annotations and writing interactive code examples.

Deploy

If you have access the Open Collective now team account:

npm run styleguide:deploy

Tests

You can run the tests using npm test or more specifically:

  • npm run test:jest for pages and components
  • npm run test:server for api
  • npm run test:e2e for end-to-end tests using Cypress

To update:

  • Jest snapshots: run npm run test:update
  • GraphQL schema for eslint: run npm run graphql:get-schema:dev

Localization

To add a translation to a new language, copy paste the en.json from src/lang and rename the copy using the 2 or 4 letter code for your country/language (e.g. fr-BE.json or fr.json).

You will also need to copy paste the last line in scripts/translate.js, and replace ja with your 2-4 letter locale code.

fs.writeFileSync(`${LANG_DIR}ja.json`, JSON.stringify(translatedMessages('ja'), null, 2));

Deployment

To deploy to staging or production, you need to be a core member of the Open Collective team.

(Optional) Configure Slack token

Setting a Slack token will post a message on #engineering with the changes you're about to deploy. It is not required, but you can activate it like this:

  1. Go to https://api.slack.com/custom-integrations/legacy-tokens
  2. Generate a token for the OpenCollective workspace
  3. Add this token to your .env file:
OC_SLACK_USER_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Staging (heroku)

# Before first deployment, configure staging remote
git remote add staging https://git.heroku.com/oc-staging-frontend.git

# Then deploy master with
npm run deploy:staging

URL: https://staging.opencollective.com/

Production (heroku)

# Before first deployment, configure production remote
git remote add production https://git.heroku.com/oc-prod-frontend.git

# Then deploy master with
npm run deploy:production

URL: https://opencollective.com/

Discussion

If you have any questions, ping us on Slack (https://slack.opencollective.org) or on Twitter (@opencollect).

opencollective-frontend's People

Contributors

alanna avatar asood123 avatar bartvanremortele avatar betree avatar clarete avatar dariapow avatar eatskolnikov avatar flickz avatar greenkeeper[bot] avatar gutofoletto avatar hichamelkaddioui avatar hipsterbrown avatar jdubois avatar kewitz avatar litomore avatar marcogbarcellos avatar nampnq avatar noeldelgado avatar pento avatar piamancini avatar richardlitt avatar ruf-io avatar shaunagm avatar wooorm avatar xdamman avatar yasulab avatar ykzts avatar znarf avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.