An open API service indexing awesome lists of open source software.

https://github.com/rocketchat/workshop.apps.development

Resources for Apps Development Workshop
https://github.com/rocketchat/workshop.apps.development

Last synced: 3 months ago
JSON representation

Resources for Apps Development Workshop

Awesome Lists containing this project

README

          

# Workshop.Apps.Development
Guide to get started with Rocket.Chat Apps Development Workshop.

## Getting Started

### Requirements
- Node.js v20.18.1
- Unix-based OS (Linux, macOS, WSL2)

### Pre-requisites

1. Join the Workshop server workspace shared in the workshop room.
2. Join the room `#challengechat` in the workshop server.
> **Hint**: Find the room under the **Directory** tab in the left sidebar.
3. Note down the server URL and your credentials (username and password) for the workshop server.

## Part 1: Deploying Your First Rocket.Chat App
In this part, you'll learn how to deploy a summarization app and implement a slash command.

#### 1. Install the Rocket.Chat Apps CLI
Install `rc-apps` globally:

```bash
npm install -g @rocket.chat/apps-cli
```

Verify the installation:

```bash
rc-apps -v
```

You should see the CLI version information:

```bash
@rocket.chat/apps-cli/1.12.0 darwin-arm64 node-v20.18.1
```

> **Note:** The platform information (e.g., "darwin-arm64") will differ depending on your operating system.

#### 2. Clone the repository

```bash
git clone https://github.com/RocketChat/Workshop.Apps.Development.git
```

#### 3. Navigate to the app directory

```bash
cd Workshop.Apps.Development/app
```

#### 4. Personalize your app
Modify the following files:

- In the `app.json` file:
- Change `nameSlug` to a unique value (e.g., `ai-chat-summarizer-`)
- Generate a new UUID at [uuidgenerator.net](https://www.uuidgenerator.net/version4) for the `id` field
- **Important:** Do NOT use `0034268f-e49a-4113-be51-4a5ca77aeeb1`
- Update the `author` field with your name

- Replace the `icon.png` file:
1. Delete the existing icon
2. Create a new icon (recommend using AI image generation)
3. You can use [Pollinations.AI](https://image.pollinations.ai/prompt/YOUR_INITIAL_avatar) with your initial
4. Save as `icon.png` (keep file size small)

#### 5. Customize your command
Open `/commands/SummarizeCommand.ts` and change the `command` field to a unique name (e.g., `-chat-summary`).

#### 6. Install dependencies

```bash
npm install
```

#### 7. Build your app

```bash
rc-apps package
```

#### 8. Update the LLM API endpoint
Open the file [`/settings/settings.ts`](https://github.com/RocketChat/Workshop.Apps.Development/blob/main/app/settings/settings.ts) and modify the L12 key value and package value to `[llama3-8b.local:1234](http://llama3-8b.local:1234)`.

> **Note:** The API call is made to `http://llama3-8b.local:1234/v1/chat/completions` so `llama3-8b.local` is the hostname and `1234` the port.

#### 9. Configure and deploy
Edit the `.rcappsconfig` file with your credentials:

```json
{
"url": "https://workspace_server_url",
"username": "your_username",
"password": "your_password"
}
```

> **Important:** Use the server URL shared in the workshop room along with your personal credentials.

Deploy your app:

```bash
rc-apps deploy
```

#### 10. Test your slash command
Type `/-chat-summary` in the thread on the `#challengechat` channel and press Enter.

## Part 2: The App

### How does the app works?
![image](https://github.com/user-attachments/assets/c662a7f7-7802-4ab7-8db5-dd5f4458e599)

The app works in a simple way. It only does three steps:
1. Read the messages
2. Summarize the messages (main feature)
3. Execute the add-ons

### What is exactly add-ons?



In the `Marketplace`, you will be able to see these settings. For every add-ons you check, the **app will create corresponding prompt and execute an LLM call**. In this case, instead of just summarizing the message (step 2), the app will also output what are the summaries **for each participant.**

### Enabling the add-ons

1. Navigate to **Administration** (kebab menu) → **Marketplace**
2. Select the **Private Apps** tab
3. Find and click on your deployed app
4. Go to the **Settings** tab
5. In the **Summary add-ons** section, select any one add-on
6. Click **Save**
7. Test your command again with `/-chat-summary` in the `#challengechat` channels' thread
> **For curious minds ✨**, the prompt for the add-on can be found in the [`/constants/prompt.ts`](https://github.com/RocketChat/Workshop.Apps.Development/blob/main/app/constants/prompts.ts) file. You can modify the prompt to suit your needs.
8. Verify that you see the chat summary plus the selected add-on functionality
9. Take a screenshot of your successful result
10. Share your screenshot in the workshop channel along with your email address to receive an invitation to the Workshop Meetup

### Where is the add-on code?



Basically, this code only do
```
if ("assigned-tasks" is checked) {
// 1. Create assigned task prompt
// 2. Execute LLM call
// 3. Show message to user
}
```

So, if the question is "can I add my own add-ons"? Obviously yes, you can just
1. Add another block of if statement,
2. Create corresponding prompt, and
3. Execute the LLM call (same code everywhere)

**HOWEVER !!** Don't forget to add your add-ons in the settings here to make it appear in the settings.



## Next Steps
To deepen your understanding, explore the [Rocket.Chat Apps documentation](https://developer.rocket.chat/docs/rocketchat-apps-engine) and most importantly, **have fun!** understading the App code you just deployed and how to improve it.

## Resources
- [Rocket.Chat Apps Documentation](https://developer.rocket.chat/docs/rocketchat-apps-engine)
- [Prompt Engineering](https://www.promptingguide.ai/)