--- title: "Initialize the project" url: https://docs.catalyst.zoho.com/en/tutorials/newsapp/nodejs/initialize-project/ description: "Build a web news application that automatically fetches news from a third-party service periodically using the Catalyst Job Scheduling Cron component, and a Job Function and Advanced I/O function coded in Node.js." last_updated: 2026-08-17T12:16:04Z service: All Services type: tutorial related_links: - name: "Project Directory Structure" url: /en/cli/v1/project-directory-structure/introduction/ - name: "Initialize Resources" url: /en/cli/v1/initialize-resources/introduction/ - name: "Advanced I/O Functions" url: /en/serverless/help/functions/advanced-io/ - name: "Job Functions" url: /en/serverless/help/functions/job-functions/ --- # Initialize the Project from the CLI You can now begin working on your Catalyst project from the CLI. The first step is to initialize the project in an empty directory. This will be the home directory of your project and all of the project files will be saved in it. You can learn more about this from the [Project Directory Structure help page](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/introduction/). You can learn about initializing a project in detail from the [CLI help documentation](https://docs.catalyst.zoho.com/en/cli/v1/initialize-resources/introduction/). For the news application, we will initialize a [job function](https://docs.catalyst.zoho.com/en/serverless/help/functions/job-functions/) and the [client](https://docs.catalyst.zoho.com/en/cli/v1/working-with-the-client/introduction/), and then [add an Advanced I/O function](https://docs.catalyst.zoho.com/en/serverless/help/functions/advanced-io) to the project directory. 1. Create a folder for the project on your local machine and navigate to it from the terminal. Initialize a project by executing the following command from that directory: ```sh catalyst init ``` 2. The CLI will now ask you to select the organization in which your Catalyst project that we created earlier in the console resides. Select the organization and press **Enter**. ![catalyst-portal](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/catalyst-portal.webp) 3. Select the project in the organization from the list and press **Enter**. ![select-project](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/select-project.webp) 4. Select **Functions** and **Client** using the space bar. Press **Enter** to initialize the components. ![select-components](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/select-components.webp) 5. The CLI will first initiate the function setup. Select **Job** as the function type. ![job-function](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/job-function.webp) 6. Select the latest runtime of **Node.js** as the function stack. ![select-node](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/select-node.webp) 7. Enter **'NewsApp'** as the package name, **'index.js'** as the entry point, and your email address as the author and press Enter. You can press **Enter** to fill in the default values. The CLI will prompt the initialization of the Node dependencies. Press **Y** to confirm the installation, and press **Enter** to confirm your choice. The Node modules will be installed. ![setup-function](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/setup-function.webp) 8. The CLI will now initialize the client set up. Choose **"Basic web app"** as the client type. ![basic-web-app](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/basic-web-app.webp) 9. Enter **'NewsAppClient'** as the name for the client package and press **Enter**. You can enter any name you want. ![client-setup](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/client-setup.webp) The client directory will be created in the standard structure. Catalyst initialization is now complete. Let's now add an additional Advanced I/O function to the project directory. As mentioned earlier, we will be coding it in **Node.js** stack. 1. To add an additional function, execute the following command from the project directory: ```sh catalyst functions:add ``` 2. Select **AdvancedIO** as the function type and press **Enter**. ![advancedio](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/advancedio.webp) 3. Select the latest runtime of Node.js as the function stack, and press **Enter**. ![advancedio-node](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/advancedio-node.webp) 4. Enter "**news_app_function**" as the package name, "**index.js**" as the entry point, and your email address as the author and press Enter. You can press **Enter** to fill the default values. The CLI will prompt the initialization of the Node dependencies. Press **Y** to confirm the installation, and press **Enter** to confirm your choice. The Node modules will be installed. ![advancedio-setup](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/advancedio-setup.webp) > **Note**: Ensure that you enter the package name, or class name and folder name, exactly as instructed, because the application's code contains the same names. Your project directory is now set up with the [client directory](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/client-directory) and the [functions directory](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory) along with configuration files and dependencies. The functions directory contains both the Job and Advanced I/O functions in individual folders. The project directory also contains the [`catalyst.json`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/catalyst-json) configuration file and a hidden `.catalystrc` file. The structure of the NewsApp project's directory will look like this: ![project-dir](https://catalyst-docs-development.zohostratus.in/images/tutorials/cron/project-dir.webp)