Skip to content

Latest commit

 

History

History
87 lines (67 loc) · 5.22 KB

CONTRIBUTING.md

File metadata and controls

87 lines (67 loc) · 5.22 KB

Contribution

Contributions to the project are always appreciated. There are many options available to improve the project (which is not limited to coding). The following list shows some ways how you can participate:

Developing

If you are a PHP or Javascript developer you can help to improve the system. If you want to create a new feature it is in general recommended to create for larger topics a new issue where we can talk about the feature. There are three main components of Fusio:

Backend-API

The backend API is the core of the system developed in PHP, which provides the basic functionality of Fusio. This is the place to develop new core features and improvements.

Adapter

An adapter is a plugin to the Fusio system which can be used to connect to other remote services. I.e. you could create a new adapter which speaks to a specific API or other remote services. This is easy to develop since you can build it in a separate repository. Please use the keyword fusio-adapter in your composer.json file so that adapter gets listed automatically on our website.

Backend-App

This is the Angular app which is used as UI to control the backend. It is the main app to improve the Fusio backend. But you are also free to develop new apps for special use cases which talk to the internal API of Fusio.

Testing

We have a high PHPUnit test case coverage. Besides this it is always great if users checkout the current master version of the project and try to test every aspect of the system. In case you have found an issue please report it on GitHub.

Documentation

We want to create a system which is easy to use also by novice users. To enable everybody to start using Fusio we need a great documentation. We have bundled all documentation at our documentation website. It is based on Docusaurus so it should be easy to adjust or contribute new documents in case you think something is missing or wrong.

Donations

If your want to financially support our project you can take a look at the Fusio repository there is a "Sponsor this project" panel where you can find all donation options.

Repository overview

The Fusio project has several components which together build the Fusio system. The following list provides an overview about all relevant repositories so that you can easily find the fitting repository for your contribution.

  • Fusio
    Contains the main Fusio repository where we collect and discuss all ideas and issues. The repository does not contain any Fusio related code, it only requires the fusio/impl package.
  • Fusio-Impl
    Contains the backend API implementation of Fusio. This is the place if you like to change the internal API of Fusio.
  • Fusio-CLI
    Contains the CLI client of Fusio, it is automatically included in every Fusio installation but you can also run the CLI client standalone. It allows you to directly interact with the API and to deploy specific YAML configuration files.
  • Fusio-Model
    Contains all Fusio models automatically generated via TypeSchema. This repository helps if you want to work with the Fusio API since you can use the same model classes which we also use at the backend.
  • Fusio-Engine
    Contains mostly interfaces which are also needed by adapters.
  • Fusio-Adapter
    Page which shows all available adapters. An adapter can extend Fusio by providing i.e. custom Actions or Connections to different services. I.e. we have an adapter MongoDB which helps to work with a MongoDB.
  • Fusio-Docker
    Contains a Docker-Image to run Fusio, it helps to quickly create a Fusio instance in the cloud. You can find it also directly on DockerHub.
  • Fusio-Worker
    This overview shows all available worker for Fusio. A worker provides a way to execute action logic in a different programming language i.e. JavaScript or Python.
  • Fusio-Docs
    Contains our complete documentation website. This is the place if you like to adjust or improve our documentation.
  • App-Backend
    Contains the Fusio backend app which you can use to configure your API. This is the place if you like to change or improve the backend app.
  • App-Developer
    Contains the developer portal app where external developers can register to use your API.
  • Apps The Backend and Developer app are the main apps regarding Fusio but we have also several other small apps. You can get an overview at our marketplace.