Skip to content

Latest commit

 

History

History
148 lines (110 loc) · 5.21 KB

CONTRIBUTING.md

File metadata and controls

148 lines (110 loc) · 5.21 KB

Contributing to crowd.dev

Contributions are what make the open-source community such an amazing place to learn, inspire, and create.

Ways to contribute

  • Try the crowd.dev platform & API and give feedback by creating new issues.
  • Help with open issues.
  • Add a new integration following our framework.
  • Help create tutorials and blog posts.
  • Improve documentation by fixing incomplete or missing docs, bad wording, examples, or explanations.

Any contributions you make are greatly appreciated. ❤️

Issue priorities

Type of Issue Priority
Bug in Critical Features (Login, Integrations, etc)
Bug in Core Features (Home, Members, Organizations, Activities)
Confusing UX (but it's working)
Minor improvements

How to contribute to development

We welcome any contribution to crowd.dev. Before you start with your first issue, please consider the following points:

Requirements

  • Node v16.16.0
  • Docker and docker-compose

Setup the project

The project is a monorepo, meaning that it is a collection of multiple packages managed in the same repository. In the following steps, you'll learn how to get the project up and running for development purposes.

  1. Get the mono repo from GitHub
git clone [email protected]:CrowdDotDev/crowd.dev.git
  1. Run the start script:
cd scripts
./cli start

For hot reloading, you can run:

cd scripts
./cli clean-start-dev

The app will be available at http://localhost:8081

For more information on development, you can check our docs.

Running services individually

To optimize resource usage during development, we would suggest starting only the necessary services and leveraging hot reloading where applicable.

  1. Start the scaffold service, including the necessary components like the database, etc:
./cli scaffold up 

This will set up the foundational services required for the project.

  1. If you are primarily working on the frontend but also need the API without hot reloading:
DEV=1 ./cli service frontend up
./cli service api up

By selectively starting the frontend and API services without enabling hot reloading, helps reduce resource usage.

Feel free to adjust the commands based on the specific services you need for your development tasks.

Coding guidelines

To ensure consistency throughout the source code, please keep these rules in mind as you are working:

  • All features or bug fixes must be tested by one or more specs (unit tests).
  • We use Eslint default rule guide, with minor changes. An automated formatter is available using Prettier.
  • In-code documentation is required for every function or class that is not self-evident.
  • All new API endpoints that are relevant to the public API must have in-code documentation to generate OpenAPI specifications.
  • The pipeline must pass.

Need help? 🛟

If you need help with any sort of contribution, please feel free to reach out on Discord or book a contributor onboarding call.