Thank you for your interest in contributing to KOBOT! We welcome contributions from the community to help improve the project.
To get started with contributing, please follow these steps:
- Fork the repository and clone it to your local machine.
- Install the project dependencies by running
npm install
. - Make your changes or additions to the codebase.
- Write tests to cover your changes and ensure existing tests pass.
- Run the tests locally to verify everything is working as expected.
- Commit your changes and push them to your forked repository.
- Open a pull request to the main repository targeting
main
branch, describing your changes and why they are valuable.
We follow a specific code style in this project to maintain consistency. Please make sure to adhere to the guidelines instructed by ESLint and Prettier. For detailed rules please read the .eslintrc.cjs
and .prettierrc
files accordingly.
We are in a transition to the brand new Kobot 2024 design. As a result, we are in the process of re-organizing the folder structure and naming conventions. Here are some of the essentail guidelines to follow:
- All the source code goes to
src
folder. - All the unit tests sit side by side with the source code ending with
.spec.ts
extension. - (amend integration tests conventions here)
- Source code files named in
kebab-case
including React hooks, and component files named inPascalCase
. - Sharable UI library components defined in the design system should be put under
src/ui/ComponentName.tsx
- Layout components and shareable bussiness logic involved components can go to
src/components/ComponentName.tsx
- Views and pages specific components can be put under
src/views/ViewName/ComponentName.tsx
- RobotSimulator components can stay under
src/RobotSimulator
folder. - Blockly controllers can stay under
src/BlocklyInterface
folder.