Skip to content

Commit

Permalink
Merge pull request #2079 from frappe/develop
Browse files Browse the repository at this point in the history
chore(release): dev to main
  • Loading branch information
RitvikSardana authored Dec 11, 2024
2 parents 58f0439 + 9cd783f commit a697e12
Show file tree
Hide file tree
Showing 45 changed files with 3,711 additions and 1,524 deletions.
188 changes: 143 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,63 +1,161 @@
<div align="center" markdown="1">
<a href="https://frappedesk.com/">
<img src=".github/hd-logo.svg" height="128" alt="Frappe Helpdesk Logo">
</a>
<h2>Frappe Helpdesk</h2>
<p align="center">
<p>Modern, Streamlined, Customer Service Software</p>
</p>

[frappedesk.com](https://frappedesk.com)

<div align="center" style="max-height: 40px;">
<a href="https://frappecloud.com/helpdesk/signup">
<img src=".github/try-on-f-cloud-button.svg" height="50">
</a>

<img src=".github/hd-logo.svg" alt="Frappe Helpdesk logo" width="100"/>
<h1>Frappe Helpdesk</h1>

**Open Source Business Intelligence Tool**

![GitHub release (latest by date)](https://img.shields.io/github/v/release/frappe/helpdesk)
[![codecov](https://codecov.io/github/frappe/helpdesk/branch/develop/graph/badge.svg?token=8ZXHCY4G9U)](https://codecov.io/github/frappe/helpdesk)

</div>


<div align="center">
<img src="./screenshot.webp" alt="Hero Image" width="72%" />
</div>
<br />
<div align="center">
<a href="https://frappe.io/helpdesk">Website</a>
-
<a href="https://docs.frappe.io/helpdesk">Documentation</a>
</div>

---
## Frappe Helpdesk
Frappe Helpdesk is an 100% open-source Ticket Management tool which helps you streamline your company's support, offers an easy setup, clean user interface, and automation tools to resolve customer queries efficiently.



## Motivation
Managing issues from our customers was a big challenge for us. We were using the ERPNext support module which was not very good in UI and the UX was also not good. We wanted to have a tool that can be easily integrated with our existing system and can be customized as per our needs. So we decided to build a Helpdesk tool that can be easily integrated with our existing system and can be customized as per our needs.

Frappe Helpdesk offers an easy setup, clean user interface, and automation tools to resolve customer issues efficiently. It is based on Frappe Framework. It lets you streamline your company's support and helps you to efficiently manage your customer queries. It can help you to,
## Key Features

- Create tickets from email or help center
- Empower customers with a comprehensive knowledge base and self-service portal
- Automate redundant tasks like agent assignment and set up triggers to notify agents and customers based on certain events
- **Agent and Customer Portal Views**: Dual portals for agents and customers to simplify issue submission and management.

![screenshot](./screenshot.webp)
- **Customizable SLAs**: Discover how you can set and track SLAs for better response times.

## Installation
- **Assignment Rules**: Custom auto-assignment of tickets based on priority, issue type, or workload.

1. Install and setup bench by following [this guide](https://frappeframework.com/docs/user/en/installation)
2. In the bench directory, run `bench start` and keep it running
3. Open another terminal in bench directory, and run these commands
- **Email Account Setup**: Set up email accounts to automatically create tickets from incoming emails. Choose from various Mail providers like Frappe Mail, Gmail, Outlook, Sendgrid, Sparkpost, Yahoo, Yandex, etc.

```
bench get-app helpdesk
bench new-site helpdesk.test
bench --site helpdesk.test install-app helpdesk
bench --site helpdesk.test add-to-hosts
```
- **Canned Responses**: Pre-written replies for common queries to ensure quick and consistent communication.

You can now access Helpdesk at `http://helpdesk.test`
5. You can also run a development server by following theses steps, in Helpdesk
directory (`apps/helpdesk`)
- **Knowledge Base**: Learn how to create and manage help articles to empower users and reduce tickets.

```
yarn
yarn dev
```

Development server will be now available at `http://localhost:8080`

## Contributions and Community
<details>
<summary>Screenshots</summary>

There are many ways you can contribute even if you don't code:
![Helpdesk SS1](.github/query-builder.png)
![Helpdesk SS1](.github/join-editor.png)
![Helpdesk SS1](.github/chart-builder.png)
</details>


## Under the Hood

- [**Frappe Framework**](https://github.com/frappe/frappe): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.

- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.


## Production Setup

### Managed Hosting

You can try [Frappe Cloud](https://frappecloud.com), a simple, user-friendly and sophisticated [open-source](https://github.com/frappe/press) platform to host Frappe applications with peace of mind.

It takes care of installation, setup, upgrades, monitoring, maintenance and support of your Frappe deployments. It is a fully featured developer platform with an ability to manage and control multiple Frappe deployments.

<div>
<a href="https://frappecloud.com/helpdesk/signup" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/try-on-fc-white.png">
<img src="https://frappe.io/files/try-on-fc-black.png" alt="Try on Frappe Cloud" height="28" />
</picture>
</a>
</div>

1. You can start by giving a star to this repository!
2. If you find any issues, even if it is a typo, you can [raise an issue](https://github.com/frappe/desk/issues/new) to inform us.
3. Join our [Telegram group](https://t.me/frappedesk) and share your thoughts.
### Self Hosting

## License
Follow these steps to set up Frappe Helpdesk in production:

[GNU Affero General Public License v3.0](/licence.md)
**Step 1**: Download the easy install script

```bash
wget https://frappe.io/easy-install.py
```

**Step 2**: Run the deployment command

```bash
python3 ./easy-install.py deploy \
--project=helpdesk_prod_setup \
--email=your_email.example.com \
--image=ghcr.io/frappe/helpdesk \
--version=stable \
--app=helpdesk \
--sitename subdomain.domain.tld
```

Replace the following parameters with your values:
- `your_email.example.com`: Your email address
- `subdomain.domain.tld`: Your domain name where Helpdesk will be hosted

The script will set up a production-ready instance of Frappe Helpdesk with all the necessary configurations in about 5 minutes.

## Development Setup

### Docker

You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, follow below steps:

**Step 1**: Setup folder and download the required files

mkdir frappe-helpdesk
cd frappe-helpdesk

# Download the docker-compose file
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/helpdesk/develop/docker/docker-compose.yml

# Download the setup script
wget -O init.sh https://raw.githubusercontent.com/frappe/helpdesk/develop/docker/init.sh

**Step 2**: Run the container and daemonize it

docker compose up -d

**Step 3**: The site [http://helpdesk.localhost:8000/helpdesk](http://helpdesk.localhost:8000/helpdesk) should now be available. The default credentials are:
- Username: Administrator
- Password: admin

### Local

To setup the repository locally follow the steps mentioned below:

1. Install bench and setup a `frappe-bench` directory by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation)
1. Start the server by running `bench start`
1. In a separate terminal window, create a new site by running `bench new-site helpdesk.test`
1. Map your site to localhost with the command `bench --site helpdesk.test add-to-hosts`
1. Get the Helpdesk app. Run `bench get-app https://github.com/frappe/helpdesk`
1. Run `bench --site helpdesk.test install-app helpdesk`.
1. Now open the URL `http://helpdesk.test:8000/helpdesk` in your browser, you should see the app running

## Learn and connect

- [Telegram Public Group](https://t.me/frappedesk)
- [Discuss Forum](https://discuss.frappe.io/c/frappehelpdesk/69)
- [Documentation](https://docs.frappe.io/helpdesk)
- [YouTube]([https://frappe.io](https://www.youtube.com/@frappetech))

<h2></h2>
<div align="center" style="padding-top: 0.75rem;">
<a href="https://frappe.io" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/Frappe-white.png">
<img src="https://frappe.io/files/Frappe-black.png" alt="Frappe Technologies" height="28"/>
</picture>
</a>
</div>
103 changes: 52 additions & 51 deletions desk/package.json
Original file line number Diff line number Diff line change
@@ -1,53 +1,54 @@
{
"name": "helpdesk-ui",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"preview": "vite preview",
"build": "vite build --base=/assets/helpdesk/desk/ && yarn copy-html-entry",
"serve": "vite preview",
"copy-html-entry": "cp ../helpdesk/public/desk/index.html ../helpdesk/www/helpdesk/index.html"
},
"dependencies": {
"@headlessui/vue": "^1.7.22",
"@iconify-json/lucide": "^1.1.99",
"@iconify-json/ph": "^1.1.5",
"@iconify/tools": "^2.2.6",
"@iconify/vue": "^4.1.1",
"@tailwindcss/line-clamp": "^0.4.4",
"@tailwindcss/typography": "^0.5.9",
"@tiptap/core": "^2.2.4",
"@vee-validate/zod": "^4.8.2",
"@vitejs/plugin-vue": "^4.0.0",
"@vueuse/core": "^10.0.2",
"autoprefixer": "^10.4.13",
"dayjs": "^1.11.7",
"echarts": "^5.4.1",
"frappe-ui": "^0.1.53",
"lodash": "^4.17.21",
"lucide-static": "^0.276.0",
"mime": "^3.0.0",
"mitt": "^3.0.1",
"pinia": "^2.0.33",
"pluralize": "^8.0.0",
"sanitize-html": "^2.10.0",
"socket.io-client": "^4.7.2",
"tailwindcss": "^3.2.7",
"unplugin-icons": "^0.16.1",
"unplugin-vue-components": "^0.25.2",
"vee-validate": "^4.8.2",
"vite": "^4.4.9",
"vue": "^3.4.12",
"vue-echarts": "^6.5.4",
"vue-router": "^4.2.2",
"vuedraggable": "^4.1.0",
"zod": "^3.21.4"
},
"resolutions": {
"cheerio": "1.0.0-rc.12"
},
"devDependencies": {
"vite-plugin-pwa": "^0.20.5"
}
"name": "helpdesk-ui",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"preview": "vite preview",
"build": "vite build --base=/assets/helpdesk/desk/ && yarn copy-html-entry",
"serve": "vite preview",
"copy-html-entry": "cp ../helpdesk/public/desk/index.html ../helpdesk/www/helpdesk/index.html"
},
"dependencies": {
"@headlessui/vue": "^1.7.22",
"@iconify-json/lucide": "^1.1.99",
"@iconify-json/ph": "^1.1.5",
"@iconify/tools": "^2.2.6",
"@iconify/vue": "^4.1.1",
"@tailwindcss/line-clamp": "^0.4.4",
"@tailwindcss/typography": "^0.5.9",
"@tiptap/core": "^2.2.4",
"@vee-validate/zod": "^4.8.2",
"@vitejs/plugin-vue": "^4.0.0",
"@vueuse/core": "^10.0.2",
"@vueuse/integrations": "^12.0.0",
"autoprefixer": "^10.4.13",
"dayjs": "^1.11.7",
"echarts": "^5.4.1",
"frappe-ui": "^0.1.53",
"lodash": "^4.17.21",
"lucide-static": "^0.276.0",
"mime": "^3.0.0",
"mitt": "^3.0.1",
"pinia": "^2.0.33",
"pluralize": "^8.0.0",
"sanitize-html": "^2.10.0",
"socket.io-client": "^4.7.2",
"tailwindcss": "^3.2.7",
"unplugin-icons": "^0.16.1",
"unplugin-vue-components": "^0.25.2",
"vee-validate": "^4.8.2",
"vite": "^4.4.9",
"vue": "^3.4.12",
"vue-echarts": "^6.5.4",
"vue-router": "^4.2.2",
"vuedraggable": "^4.1.0",
"zod": "^3.21.4"
},
"resolutions": {
"cheerio": "1.0.0-rc.12"
},
"devDependencies": {
"vite-plugin-pwa": "^0.20.5"
}
}
1 change: 0 additions & 1 deletion desk/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ onMounted(async () => {
iconClasses: "stroke-red-600",
});
});
await initTelemetry();
});
onUnmounted(() => {
Expand Down
Loading

0 comments on commit a697e12

Please sign in to comment.