• Stars
    star
    683
  • Rank 66,158 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Open Collective Frontend

GitHub Crowdin React Version Next.JS Version

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 18.x and NPM version 8.x.
  • We recommend using nvm: nvm install && 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 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 the following content to a .env file:
API_URL=http://localhost:3060
API_KEY=dvl-1510egmf4a23d80342403fb599qd

Start

npm run dev

Tests

To run the tests:

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 Storybook 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.

Bounties

This repo is part of the Open Collective bounty program. Get paid to contribute to Open Source! The Open Collective engineering team is small and we're always looking for new contributors to our Open Source codebases. Our Bounty program is an opportunity to solve issues that could be neglected otherwise. Contributors who fix these issues will be rewarded financially. Please see our docs for more information: https://docs.opencollective.com/help/contributing/development/bounties

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

Publishing components

To publish a frontend components update to NPM, you need to be a core member of the Open Collective team. Steps:

  1. Check the currently published version with npm view @opencollective/frontend-components version
  2. Trigger the publishing script by running npm run publish-components {NEW_VERSION}, where {NEW_VERSION} is the new version number (please follow semver).
  3. Review the changes, and confirm if everything makes sense.

To add new files or dependencies to this exported package, have a look at scripts/publish-components/config.ts.

Discussion

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

Thanks

Lost Pixel

Thanks to Lost Pixel for providing the visual testing platform that helps us review UI changes and catch visual regressions.

More Repositories

1

opencollective

We're tracking all our Issues, RFCs and a few other documents in this repository.
1,813
star
2

opencollective-api

Open Collective's API. A GraphQL API powered by Sequelize and PostgreSQL.
JavaScript
376
star
3

documentation

All documentation for Open Collective
92
star
4

opencollective-bot

πŸ€– A perfect companion for your Open Collective
TypeScript
77
star
5

opencollective-website

OpenCollective frontend
JavaScript
62
star
6

opencollective-postinstall

Prompt your users to donate to your collective after `npm install`
JavaScript
50
star
7

opencollective-pdf

Open Collective's PDF Server
JavaScript
49
star
8

opencollective-images

Open Collective's Image Server. For badges, banners, avatar, etc ...
JavaScript
45
star
9

opencollective-rest

Open Collective's REST API legacy, v1, and v2!
JavaScript
34
star
10

opencollective-cli

Command Line Interface for Open Collective
JavaScript
17
star
11

.github

14
star
12

opencollective-changelog

Tracking weekly changes
JavaScript
11
star
13

foundation-website

Less
10
star
14

country-currency-emoji-flags

Returns Country Flag Emojis Given the Country or Currency Codes
JavaScript
9
star
15

opencollective-giftcards-generator

Simple app to generate read-to-print Open Collective gift cards
JavaScript
9
star
16

opencollective-app

OpenCollective App - used to manage budgets and approve expenses
JavaScript
9
star
17

sustainer-resources

Useful resources for Open Source Sustainers
8
star
18

opencollective-taxes

Shared code to calculate taxes for events, products and services (VAT)
TypeScript
7
star
19

opencollective-coda

A pack to access the Open Collective API through Coda.io
TypeScript
7
star
20

opencollective-setup

CLI tool to setup Open Collective in repositories
JavaScript
6
star
21

express-server-status

Get a quick overview of the status of an express server (uptime, version, git sha, stats)
JavaScript
6
star
22

opencollective-emails

The new Open Collective email service, powered by Eymail
JavaScript
6
star
23

intelligence

JavaScript
5
star
24

opencollective-zapier

⚠️ DEPRECATED ⚠️ Open Collective legacy Zapier integration
JavaScript
5
star
25

contributors-svg

JavaScript
5
star
26

opencollective-tools

JavaScript
4
star
27

opencollective-frontend-template

Kickstart a new frontend project at Open Collective.
TypeScript
4
star
28

eslint-config-opencollective

https://www.npmjs.com/package/eslint-config-opencollective
JavaScript
4
star
29

graphql-docs-v2

HTML
4
star
30

opencollective-email

The email service for transparent and inclusive open collectives
JavaScript
4
star
31

opencollective-site

New frontend for Opencollective
JavaScript
3
star
32

opencollective-github-helpers

An app to help with the maintainance and development tasks of Open Collective internal repositories
TypeScript
3
star
33

opencollective-jobs

JavaScript
3
star
34

profile-report

A series of jupyter notebooks to generate an analytics report.
Jupyter Notebook
3
star
35

accounting-export

Tests to develop pipelines for reconciling accounts.
Jupyter Notebook
3
star
36

renovate-config

A shareable config preset for Renovate used in Open Collective.
2
star
37

api-examples

2
star
38

opensource

This is the Open Source Collective repo. Submit here issues related on how to spend the money and projects/ideas to get funded.
2
star
39

open-stocks

CSS
2
star
40

community

Build with us the community version of open collective
2
star
41

foundation-website-2020

HTML
1
star
42

auth-simple-oauth-app.js

TypeScript
1
star
43

next-issues

Minimal Next.js applications to highlight bugs or issues.
JavaScript
1
star
44

presentations

A collection of presentations for internal or external usage.
JavaScript
1
star
45

babel-preset-opencollective

JavaScript
1
star
46

opencollective-lib

Libraries in common in our repos
1
star