Skip to content

Commit a697e12

Browse files
Merge pull request #2079 from frappe/develop
chore(release): dev to main
2 parents 58f0439 + 9cd783f commit a697e12

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+3711
-1524
lines changed

Diff for: README.md

+143-45
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,161 @@
11
<div align="center" markdown="1">
2-
<a href="https://frappedesk.com/">
3-
<img src=".github/hd-logo.svg" height="128" alt="Frappe Helpdesk Logo">
4-
</a>
5-
<h2>Frappe Helpdesk</h2>
6-
<p align="center">
7-
<p>Modern, Streamlined, Customer Service Software</p>
8-
</p>
9-
10-
[frappedesk.com](https://frappedesk.com)
11-
12-
<div align="center" style="max-height: 40px;">
13-
<a href="https://frappecloud.com/helpdesk/signup">
14-
<img src=".github/try-on-f-cloud-button.svg" height="50">
15-
</a>
2+
3+
<img src=".github/hd-logo.svg" alt="Frappe Helpdesk logo" width="100"/>
4+
<h1>Frappe Helpdesk</h1>
5+
6+
**Open Source Business Intelligence Tool**
7+
8+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/frappe/helpdesk)
9+
[![codecov](https://codecov.io/github/frappe/helpdesk/branch/develop/graph/badge.svg?token=8ZXHCY4G9U)](https://codecov.io/github/frappe/helpdesk)
10+
1611
</div>
12+
13+
14+
<div align="center">
15+
<img src="./screenshot.webp" alt="Hero Image" width="72%" />
16+
</div>
17+
<br />
18+
<div align="center">
19+
<a href="https://frappe.io/helpdesk">Website</a>
20+
-
21+
<a href="https://docs.frappe.io/helpdesk">Documentation</a>
1722
</div>
1823

19-
---
24+
## Frappe Helpdesk
25+
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.
26+
27+
28+
29+
## Motivation
30+
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.
2031

21-
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,
32+
## Key Features
2233

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

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

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

31-
1. Install and setup bench by following [this guide](https://frappeframework.com/docs/user/en/installation)
32-
2. In the bench directory, run `bench start` and keep it running
33-
3. Open another terminal in bench directory, and run these commands
40+
- **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.
3441

35-
```
36-
bench get-app helpdesk
37-
bench new-site helpdesk.test
38-
bench --site helpdesk.test install-app helpdesk
39-
bench --site helpdesk.test add-to-hosts
40-
```
42+
- **Canned Responses**: Pre-written replies for common queries to ensure quick and consistent communication.
4143

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

46-
```
47-
yarn
48-
yarn dev
49-
```
5046

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

53-
## Contributions and Community
48+
<details>
49+
<summary>Screenshots</summary>
5450

55-
There are many ways you can contribute even if you don't code:
51+
![Helpdesk SS1](.github/query-builder.png)
52+
![Helpdesk SS1](.github/join-editor.png)
53+
![Helpdesk SS1](.github/chart-builder.png)
54+
</details>
55+
56+
57+
## Under the Hood
58+
59+
- [**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.
60+
61+
- [**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.
62+
63+
64+
## Production Setup
65+
66+
### Managed Hosting
67+
68+
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.
69+
70+
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.
71+
72+
<div>
73+
<a href="https://frappecloud.com/helpdesk/signup" target="_blank">
74+
<picture>
75+
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/try-on-fc-white.png">
76+
<img src="https://frappe.io/files/try-on-fc-black.png" alt="Try on Frappe Cloud" height="28" />
77+
</picture>
78+
</a>
79+
</div>
5680

57-
1. You can start by giving a star to this repository!
58-
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.
59-
3. Join our [Telegram group](https://t.me/frappedesk) and share your thoughts.
81+
### Self Hosting
6082

61-
## License
83+
Follow these steps to set up Frappe Helpdesk in production:
6284

63-
[GNU Affero General Public License v3.0](/licence.md)
85+
**Step 1**: Download the easy install script
86+
87+
```bash
88+
wget https://frappe.io/easy-install.py
89+
```
90+
91+
**Step 2**: Run the deployment command
92+
93+
```bash
94+
python3 ./easy-install.py deploy \
95+
--project=helpdesk_prod_setup \
96+
--email=your_email.example.com \
97+
--image=ghcr.io/frappe/helpdesk \
98+
--version=stable \
99+
--app=helpdesk \
100+
--sitename subdomain.domain.tld
101+
```
102+
103+
Replace the following parameters with your values:
104+
- `your_email.example.com`: Your email address
105+
- `subdomain.domain.tld`: Your domain name where Helpdesk will be hosted
106+
107+
The script will set up a production-ready instance of Frappe Helpdesk with all the necessary configurations in about 5 minutes.
108+
109+
## Development Setup
110+
111+
### Docker
112+
113+
You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, follow below steps:
114+
115+
**Step 1**: Setup folder and download the required files
116+
117+
mkdir frappe-helpdesk
118+
cd frappe-helpdesk
119+
120+
# Download the docker-compose file
121+
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/helpdesk/develop/docker/docker-compose.yml
122+
123+
# Download the setup script
124+
wget -O init.sh https://raw.githubusercontent.com/frappe/helpdesk/develop/docker/init.sh
125+
126+
**Step 2**: Run the container and daemonize it
127+
128+
docker compose up -d
129+
130+
**Step 3**: The site [http://helpdesk.localhost:8000/helpdesk](http://helpdesk.localhost:8000/helpdesk) should now be available. The default credentials are:
131+
- Username: Administrator
132+
- Password: admin
133+
134+
### Local
135+
136+
To setup the repository locally follow the steps mentioned below:
137+
138+
1. Install bench and setup a `frappe-bench` directory by following the [Installation Steps](https://frappeframework.com/docs/user/en/installation)
139+
1. Start the server by running `bench start`
140+
1. In a separate terminal window, create a new site by running `bench new-site helpdesk.test`
141+
1. Map your site to localhost with the command `bench --site helpdesk.test add-to-hosts`
142+
1. Get the Helpdesk app. Run `bench get-app https://github.com/frappe/helpdesk`
143+
1. Run `bench --site helpdesk.test install-app helpdesk`.
144+
1. Now open the URL `http://helpdesk.test:8000/helpdesk` in your browser, you should see the app running
145+
146+
## Learn and connect
147+
148+
- [Telegram Public Group](https://t.me/frappedesk)
149+
- [Discuss Forum](https://discuss.frappe.io/c/frappehelpdesk/69)
150+
- [Documentation](https://docs.frappe.io/helpdesk)
151+
- [YouTube]([https://frappe.io](https://www.youtube.com/@frappetech))
152+
153+
<h2></h2>
154+
<div align="center" style="padding-top: 0.75rem;">
155+
<a href="https://frappe.io" target="_blank">
156+
<picture>
157+
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/Frappe-white.png">
158+
<img src="https://frappe.io/files/Frappe-black.png" alt="Frappe Technologies" height="28"/>
159+
</picture>
160+
</a>
161+
</div>

Diff for: desk/package.json

+52-51
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,54 @@
11
{
2-
"name": "helpdesk-ui",
3-
"private": true,
4-
"version": "0.0.0",
5-
"scripts": {
6-
"dev": "vite",
7-
"preview": "vite preview",
8-
"build": "vite build --base=/assets/helpdesk/desk/ && yarn copy-html-entry",
9-
"serve": "vite preview",
10-
"copy-html-entry": "cp ../helpdesk/public/desk/index.html ../helpdesk/www/helpdesk/index.html"
11-
},
12-
"dependencies": {
13-
"@headlessui/vue": "^1.7.22",
14-
"@iconify-json/lucide": "^1.1.99",
15-
"@iconify-json/ph": "^1.1.5",
16-
"@iconify/tools": "^2.2.6",
17-
"@iconify/vue": "^4.1.1",
18-
"@tailwindcss/line-clamp": "^0.4.4",
19-
"@tailwindcss/typography": "^0.5.9",
20-
"@tiptap/core": "^2.2.4",
21-
"@vee-validate/zod": "^4.8.2",
22-
"@vitejs/plugin-vue": "^4.0.0",
23-
"@vueuse/core": "^10.0.2",
24-
"autoprefixer": "^10.4.13",
25-
"dayjs": "^1.11.7",
26-
"echarts": "^5.4.1",
27-
"frappe-ui": "^0.1.53",
28-
"lodash": "^4.17.21",
29-
"lucide-static": "^0.276.0",
30-
"mime": "^3.0.0",
31-
"mitt": "^3.0.1",
32-
"pinia": "^2.0.33",
33-
"pluralize": "^8.0.0",
34-
"sanitize-html": "^2.10.0",
35-
"socket.io-client": "^4.7.2",
36-
"tailwindcss": "^3.2.7",
37-
"unplugin-icons": "^0.16.1",
38-
"unplugin-vue-components": "^0.25.2",
39-
"vee-validate": "^4.8.2",
40-
"vite": "^4.4.9",
41-
"vue": "^3.4.12",
42-
"vue-echarts": "^6.5.4",
43-
"vue-router": "^4.2.2",
44-
"vuedraggable": "^4.1.0",
45-
"zod": "^3.21.4"
46-
},
47-
"resolutions": {
48-
"cheerio": "1.0.0-rc.12"
49-
},
50-
"devDependencies": {
51-
"vite-plugin-pwa": "^0.20.5"
52-
}
2+
"name": "helpdesk-ui",
3+
"private": true,
4+
"version": "0.0.0",
5+
"scripts": {
6+
"dev": "vite",
7+
"preview": "vite preview",
8+
"build": "vite build --base=/assets/helpdesk/desk/ && yarn copy-html-entry",
9+
"serve": "vite preview",
10+
"copy-html-entry": "cp ../helpdesk/public/desk/index.html ../helpdesk/www/helpdesk/index.html"
11+
},
12+
"dependencies": {
13+
"@headlessui/vue": "^1.7.22",
14+
"@iconify-json/lucide": "^1.1.99",
15+
"@iconify-json/ph": "^1.1.5",
16+
"@iconify/tools": "^2.2.6",
17+
"@iconify/vue": "^4.1.1",
18+
"@tailwindcss/line-clamp": "^0.4.4",
19+
"@tailwindcss/typography": "^0.5.9",
20+
"@tiptap/core": "^2.2.4",
21+
"@vee-validate/zod": "^4.8.2",
22+
"@vitejs/plugin-vue": "^4.0.0",
23+
"@vueuse/core": "^10.0.2",
24+
"@vueuse/integrations": "^12.0.0",
25+
"autoprefixer": "^10.4.13",
26+
"dayjs": "^1.11.7",
27+
"echarts": "^5.4.1",
28+
"frappe-ui": "^0.1.53",
29+
"lodash": "^4.17.21",
30+
"lucide-static": "^0.276.0",
31+
"mime": "^3.0.0",
32+
"mitt": "^3.0.1",
33+
"pinia": "^2.0.33",
34+
"pluralize": "^8.0.0",
35+
"sanitize-html": "^2.10.0",
36+
"socket.io-client": "^4.7.2",
37+
"tailwindcss": "^3.2.7",
38+
"unplugin-icons": "^0.16.1",
39+
"unplugin-vue-components": "^0.25.2",
40+
"vee-validate": "^4.8.2",
41+
"vite": "^4.4.9",
42+
"vue": "^3.4.12",
43+
"vue-echarts": "^6.5.4",
44+
"vue-router": "^4.2.2",
45+
"vuedraggable": "^4.1.0",
46+
"zod": "^3.21.4"
47+
},
48+
"resolutions": {
49+
"cheerio": "1.0.0-rc.12"
50+
},
51+
"devDependencies": {
52+
"vite-plugin-pwa": "^0.20.5"
53+
}
5354
}

Diff for: desk/src/App.vue

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ onMounted(async () => {
3131
iconClasses: "stroke-red-600",
3232
});
3333
});
34-
await initTelemetry();
3534
});
3635
3736
onUnmounted(() => {

0 commit comments

Comments
 (0)