# Data Catalog Project Setup

This guide shows you how to set up your project containing the definitions of your Data Catalog resources.

## Overview

In the context of the [Rudder CLI]({{< ref "dev-tools/rudder-cli/" >}}) tool, a Data Catalog project typically consists of a root directory that contains all the project files. Within this root directory, each YAML file can contain definitions for resources of a particular type, for example, events, properties, custom data types, and Tracking Plans.

The location and naming of these YAML files is flexible, as you can store the YAML files anywhere within the project's root directory or subdirectories.

## Set up your project

The Rudder CLI tool expects the Data Catalog resources to be described in [YAML files]({{< ref "dev-tools/rudder-cli/yaml-data-catalog-and-tracking-plans/" >}}) present in your system.

If you're working with a Unix-compatible shell, run the following command to create a `tutorial-catalog` folder in your home directory, which you can use to populate the Data Catalog resources as YAML files:

```shell
mkdir ~/tutorial-catalog
```

{{< success >}}
The Rudder CLI tool automatically processes all valid YAML files within the project structure to recognize the defined resources.
{{< /success >}}

## Next steps

- [Create events]({{< ref "dev-tools/rudder-cli/data-catalog-and-tracking-plans/data-catalog/events.md" >}})
- [Create event categories]({{< ref "dev-tools/rudder-cli/data-catalog-and-tracking-plans/data-catalog/events.md#event-categories" >}})
- [Create properties]({{< ref "dev-tools/rudder-cli/data-catalog-and-tracking-plans/data-catalog/properties.md" >}})
- [Create custom types]({{< ref "dev-tools/rudder-cli/data-catalog-and-tracking-plans/data-catalog/custom-types.md" >}})

See [Data Catalog YAML Reference]({{< ref "dev-tools/rudder-cli/yaml-data-catalog-and-tracking-plans/" >}}) for the detailed YAML spec containing the definitions of these Data Catalog resources.

<br />

