Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/opencollective/opencollective-api

Open Collective's API. A GraphQL API powered by Sequelize and PostgreSQL.
https://github.com/opencollective/opencollective-api

graphql hacktoberfest nodejs opencollective postgres

Last synced: 5 days ago
JSON representation

Open Collective's API. A GraphQL API powered by Sequelize and PostgreSQL.

Awesome Lists containing this project

README

        

# Open Collective API

![CI](https://github.com/opencollective/opencollective-api/workflows/CI/badge.svg)
![E2E](https://github.com/opencollective/opencollective-api/workflows/E2E/badge.svg)
[![Discord](https://discordapp.com/api/guilds/1241017531318276158/widget.png)](https://discord.opencollective.com)

## 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 20.x and NPM version 10.x.

- We recommend using [nvm](https://github.com/creationix/nvm): `nvm install && nvm use`.

2. Make sure you have a PostgreSQL database available

- Check the version: 11.0, 10.3, 9.6.8, 9.5.12, 9.4.17, 9.3.22 or newer
- More info in our [PostgreSQL Database](docs/postgres.md) documentation

3. For [node-gyp](https://github.com/nodejs/node-gyp), make sure you have Python 2 available and configured as the active version.

- You can use [pyenv](https://github.com/pyenv/pyenv) to manage Python versions.

### Install

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

```
git clone [email protected]:opencollective/opencollective-api.git opencollective/api
cd opencollective/api
npm install
```

### Start

```
npm run dev
```

- API is started on http://localhost:3060
- A local email inbox is started on http://localhost:1080

See the [dev docs](docs/dev.md) for querying basics.

#### Troubleshooting

- If you're running into `node-gyp` issues related to Python 3 vs Python 2, you can run: `npm rebuild`
- If you have issues with PostgreSQL, check our [dedicated documentation](docs/postgres.md)

## Deployment

**Summary**: This project is currently deployed to staging and production with [Heroku](https://www.heroku.com/). To deploy, you need to be a core member of the Open Collective team.

See: [docs/deployment.md](docs/deployment.md)

## More documentation:

- [PostgreSQL Database](docs/postgres.md)
- [List of supported environment variables](docs/environment_variables.md)
- [Developing with Emails](docs/emails.md)
- [Data Exports](docs/data_exports.md)

## Discussion

If you have any questions, ping us on [Discord](https://discord.opencollective.com) or Twitter
([@opencollect](https://twitter.com/opencollect)).

## License

[MIT](LICENSE)