# How to develop an indicator

{% hint style="info" %}

<pre data-overflow="wrap"><code>It is recommended to read our <a data-footnote-ref href="#user-content-fn-1">FAQ</a> and Data Storage Solutions first. so as to be familiar with various problems that need to be dealt with during the development process.
</code></pre>

{% endhint %}

Steps to develop indicators on KingData:

1. Fork the [indicators repository](https://github.com/js-kingdata/indicators_factory) (button towards the top right of the repo page).&#x20;
2. Add a new folder in `/crawlers/indicators/spiders/` with the new indicator name.&#x20;
3. Write the indicator's description file in the new folder: `definition.md`.&#x20;
4. Create a new crawler file in this directory to realize the indicator requirement logic of `definition.md`.&#x20;
5. Write broadcast template to render the params that logic code return.
6. Test and submit the changes on your fork to the [indicators repository](https://github.com/js-kingdata/indicators_factory) as a Pull Request with a brief description of the changes you made.&#x20;
7. Waiting for someone to comment or merge your merge request. There is no need to have someone check your PR as it is regularly monitored.&#x20;
8. Once your PR is merged, please give the front-end team 24 hours to load your listing on the UI.

## Indicators development environments

1. Development Language：Python 3.10.4, Our recommendation is to follow the [Hitchhiker's Guide to Python](https://docs.python-guide.org/starting/installation/).
2. Crawler framework：Scrapy 2.7.1  Our recommendation is to follow the  [Guide to Scrapy](https://docs.scrapy.org/en/latest/intro/tutorial.html).&#x20;

[^1]:
