We have recently updated our onboarding doc for developers as we have a lot of people and orgs looking to start development on existing platforms in the Cokoverse. Below is pretty much the gist of it. If you have comments on how to improve this please email Adam! (firstname.lastname@example.org).
The first thing you should do is sign up for the tools we use to get work done. We use 100% open source tools. If you are looking for information on contributing (including testing) please look at the contributing guide in each of the project repositories.
This is where the code for all our projects lives. You can find links to specific projects further down in this document. You can create your own account.
Where all of the community chats to each other. As a developer, you should probably subscribe to the PubSweet channel, as well as any project-specific channels that might be of interest. You can create your own account. There are also mobile and desktop apps for mattermost.
Our very own instance of discourse. If you need help with installing one of the applications or using one of libraries, you should open a ticket in discourse. This is preferred over simply asking on mattermost, as it will make it more discoverable for people that experience similar difficulties in the future. You can create your own account. There are mobile apps for discourse.
We use Jitsi for all calls. It is a browser based video conferencing app. It doesn’t need an account. Jitsi also has mobile apps.
Collective 68 is the organisation that takes care of our internal systems infrastructure. If you experience technical issues with one of the tools above (e.g. gitlab server is down), please open a ticket there for a quick response.
Our technology stack
Our projects use the following technologies.
All of our projects use Postgres as a database (it is also a requirement for PubSweet). You should be able to work with it or another SQL-based relational database.
Node / Express
Our server code is based on node and more specifically on the lightweight express.js framework.
Graphql / Apollo
All of our applications have a GraphQL API, and we use apollo to make that happen.
React & Styled components
You are very likely to be working on UI components. We use react, as well as styled components for CSS styles. It is expected that you are well versed in both of these libraries.
We strongly recommend that you have a development environment that has support for modern features (e.g. linting). You are free to use whatever you want, but most of us use Visual Studio Code and its extensions without any issues.
It is expected that the applications will be run on a *nix operating system.
That means that in order for things to work locally for you, you should be working on a Linux distribution (e.g. Ubuntu, Manjaro, etc.), MacOS or, if on Windows, inside the Windows Subsystem for Linux (WSL2 — the “2” is important here).
It is also expected that you have the following technologies installed locally:
We don’t require people to be git experts, but working knowledge of git branching, committing, merging and rebasing is expected.
(if you read up to chapter 3, you should be good to start working)
Docker & docker-compose
Most of our projects use docker in one form or another. Familiarity with running simple docker and docker-compose commands is expected.
Built with Pubsweet
As a developer, before working with the projects we recommend you first do the following:
- create accounts on mattermost, discourse and gitlab at the very least
- read the PubSweet documentation
- set up your dev environment
- install PubSweet
- install Editoria or one of the other applications
After the above we will include you in a onboarding training schedule.
If you have any issues when installing PubSweet/Editoria (etc.) please file them in the discourse instance. We want as much help discussion as possible to happen through discourse.