diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3bb49ba --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,62 @@ +# Contributing + +Contributions are always welcome, no matter how large or small! + +We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. Before contributing, please read the [code of conduct](./CODE_OF_CONDUCT.md). + +## Development workflow + +To get started with the project, run `npm install` in the root directory to install the required dependencies for each package: + +```sh +npm install +``` + +Make sure your code passes TypeScript and ESLint. Run the following to verify: + +```sh +npm run watch +npm run lint +``` + +To fix formatting errors, run the following: + +```sh +npm run lint --fix +``` + +To use prettier, run the following: + +```sh +npm run format +``` + +### Linting and tests + +[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/) + +We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting and formatting the code, and [Jest](https://jestjs.io/) for testing. + +Our pre-commit hooks verify that the linter and tests pass when committing. + +### Scripts + +The `package.json` file contains various scripts for common tasks: + +- `npm run watch`: type-check files with TypeScript. +- `npm run lint`: lint files with ESLint. +- `npm run format`: format files with Prettier. +- `npm run dev`: run the dashboard in development mode. +- `npm run build`: build the dashboard for production. + +### Sending a pull request + +> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github). + +When you're sending a pull request: + +- Prefer small pull requests focused on one change. +- Verify that linters and tests are passing. +- Review the documentation to make sure it looks good. +- Follow the pull request template when opening a pull request. +- For pull requests that change the API or implementation, discuss with maintainers first by opening an issue. diff --git a/readme.md b/readme.md index 66200f2..1544603 100644 --- a/readme.md +++ b/readme.md @@ -6,14 +6,18 @@ the [Jellyfish TS client](https://github.com/jellyfish-dev/react-client-sdk/tree ## Documentation -Documentation is available [here](https://jellyfish-dev.github.io/react-client-sdk/) +Documentation is available [here](https://jellyfish-dev.github.io/react-client-sdk/) or you can generate it locally: + +```bash +npm run docs +``` ## Installation You can install the library using `npm`: ```bash -npm install https://github.com/jellyfish-dev/react-client-sdk +npm install @jellyfish-dev/react-client-sdk ``` It was tested with `nodejs` version mentioned in `.tool-versions` file. @@ -125,6 +129,12 @@ export const App = () => { }; ``` +## Contributing + +We welcome contributions to this SDK. Please report any bugs or issues you find or feel free to make a pull request with your own bug fixes and/or features. + +Detailed information about contributing to Jellyfish Dashboard can be found in [contributing](./CONTRIBUTING.md) document. + ## Examples For examples, see [examples](https://github.com/jellyfish-dev/react-client-sdk/tree/main/examples) folder. @@ -132,10 +142,20 @@ For examples, see [examples](https://github.com/jellyfish-dev/react-client-sdk/t More information about usage of webrtc can be found in [MembraneWebRTC documentation](https://jellyfish-dev.github.io/membrane-webrtc-js/). -## Documentation +## Jellyfish ecosystem -Can be found [here](https://jellyfish-dev.github.io/react-client-sdk/) or you can generate it locally: +| | | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Client SDKs | [React](https://github.com/jellyfish-dev/react-client-sdk), [React Native](https://github.com/jellyfish-dev/react-native-client-sdk), [iOs](https://github.com/jellyfish-dev/ios-client-sdk), [Android](https://github.com/jellyfish-dev/android-client-sdk) | +| Server SDKs | [Elixir](https://github.com/jellyfish-dev/elixir_server_sdk), [Python](https://github.com/jellyfish-dev/python-server-sdk), [OpenAPI](https://jellyfish-dev.github.io/jellyfish-docs/api_reference/rest_api) | +| Services | [Videoroom](https://github.com/jellyfish-dev/jellyfish_videoroom) - an example videoconferencing app written in elixir
[Dashboard](https://github.com/jellyfish-dev/jellyfish-dashboard) - an internal tool used to showcase Jellyfish's capabilities | +| Resources | [Jellyfish Book](https://jellyfish-dev.github.io/book/) - theory of the framework, [Docs](https://jellyfish-dev.github.io/jellyfish-docs/), [Tutorials](https://github.com/jellyfish-dev/jellyfish-clients-tutorials) | +| Membrane | Jellyfish is based on [Membrane](https://membrane.stream/), [Discord](https://discord.gg/nwnfVSY) | +| Compositor | [Compositor](https://github.com/membraneframework/membrane_video_compositor_plugin) - Membrane plugin to transform video | +| Protobufs | If you want to use Jellyfish on your own, you can use our [protobufs](https://github.com/jellyfish-dev/protos) | -```bash -npm run docs -``` +## Credits + +This project has been built and is maintained thanks to the support from [Software Mansion](https://swmansion.com). + +Software Mansion