update
This commit is contained in:
193
backEnd/support/README.md
Normal file
193
backEnd/support/README.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Support Center Module
|
||||
|
||||
Enterprise Support Center for handling customer support tickets, knowledge base articles, and support settings.
|
||||
|
||||
## Features
|
||||
|
||||
- **Ticket Management**
|
||||
- Create and track support tickets
|
||||
- Multiple ticket types (technical, billing, feature requests, etc.)
|
||||
- Priority and status management
|
||||
- Ticket categories and tags
|
||||
- SLA deadline tracking
|
||||
- Message and activity history
|
||||
|
||||
- **Knowledge Base**
|
||||
- Categorized articles
|
||||
- Search functionality
|
||||
- Featured articles
|
||||
- Article feedback (helpful/not helpful)
|
||||
- View count tracking
|
||||
- Rich content support
|
||||
|
||||
- **Public API**
|
||||
- Create tickets without authentication
|
||||
- Check ticket status by ticket number
|
||||
- Browse knowledge base articles
|
||||
- Search articles
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Run Migrations
|
||||
|
||||
```bash
|
||||
python manage.py migrate
|
||||
```
|
||||
|
||||
### 2. Populate Initial Data
|
||||
|
||||
```bash
|
||||
python manage.py populate_support_data
|
||||
```
|
||||
|
||||
This will create:
|
||||
- 5 ticket statuses (Open, In Progress, Pending Response, Resolved, Closed)
|
||||
- 4 ticket priorities (Low, Medium, High, Critical)
|
||||
- 6 ticket categories
|
||||
- 6 knowledge base categories
|
||||
- 6 sample knowledge base articles
|
||||
|
||||
### 3. Admin Access
|
||||
|
||||
Access the Django admin panel to manage:
|
||||
- Support tickets
|
||||
- Ticket categories, statuses, and priorities
|
||||
- Knowledge base categories and articles
|
||||
- Support settings
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Tickets
|
||||
|
||||
- `GET /api/support/tickets/` - List all tickets
|
||||
- `POST /api/support/tickets/` - Create a new ticket
|
||||
- `GET /api/support/tickets/{id}/` - Get ticket details
|
||||
- `POST /api/support/tickets/check-status/` - Check ticket status by ticket number
|
||||
- `POST /api/support/tickets/{id}/add-message/` - Add a message to a ticket
|
||||
|
||||
### Categories
|
||||
|
||||
- `GET /api/support/categories/` - List all ticket categories
|
||||
- `GET /api/support/statuses/` - List all ticket statuses
|
||||
- `GET /api/support/priorities/` - List all ticket priorities
|
||||
|
||||
### Knowledge Base
|
||||
|
||||
- `GET /api/support/knowledge-base/` - List all published articles
|
||||
- `GET /api/support/knowledge-base/{slug}/` - Get article details
|
||||
- `GET /api/support/knowledge-base/featured/` - Get featured articles
|
||||
- `GET /api/support/knowledge-base/by-category/{category_slug}/` - Get articles by category
|
||||
- `POST /api/support/knowledge-base/{slug}/mark-helpful/` - Mark article as helpful/not helpful
|
||||
- `GET /api/support/knowledge-base-categories/` - List all KB categories
|
||||
|
||||
### Settings
|
||||
|
||||
- `GET /api/support/settings/` - List all active support settings
|
||||
- `GET /api/support/settings/{setting_name}/` - Get specific setting
|
||||
|
||||
## Models
|
||||
|
||||
### SupportTicket
|
||||
Main model for support tickets with full tracking capabilities.
|
||||
|
||||
### TicketStatus
|
||||
Ticket status options (Open, In Progress, Resolved, etc.)
|
||||
|
||||
### TicketPriority
|
||||
Priority levels with SLA hours (Low, Medium, High, Critical)
|
||||
|
||||
### TicketCategory
|
||||
Categorize tickets for better organization
|
||||
|
||||
### TicketMessage
|
||||
Messages and updates on tickets
|
||||
|
||||
### TicketActivity
|
||||
Audit trail of all ticket changes
|
||||
|
||||
### KnowledgeBaseCategory
|
||||
Categories for knowledge base articles
|
||||
|
||||
### KnowledgeBaseArticle
|
||||
Knowledge base articles with rich content
|
||||
|
||||
### SupportSettings
|
||||
Configurable support center settings
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Create a Ticket
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
data = {
|
||||
"title": "Cannot login to my account",
|
||||
"description": "I've been trying to login but getting error 500",
|
||||
"ticket_type": "technical",
|
||||
"user_name": "John Doe",
|
||||
"user_email": "john@example.com",
|
||||
"user_phone": "+1234567890",
|
||||
"company": "Acme Corp",
|
||||
"category": 1 # Technical Support category ID
|
||||
}
|
||||
|
||||
response = requests.post('http://localhost:8000/api/support/tickets/', json=data)
|
||||
ticket = response.json()
|
||||
print(f"Ticket created: {ticket['ticket_number']}")
|
||||
```
|
||||
|
||||
### Check Ticket Status
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
data = {
|
||||
"ticket_number": "TKT-20231015-ABCDE"
|
||||
}
|
||||
|
||||
response = requests.post('http://localhost:8000/api/support/tickets/check-status/', json=data)
|
||||
ticket = response.json()
|
||||
print(f"Status: {ticket['status_name']}")
|
||||
```
|
||||
|
||||
### Search Knowledge Base
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
response = requests.get('http://localhost:8000/api/support/knowledge-base/', params={'search': 'login'})
|
||||
articles = response.json()
|
||||
for article in articles:
|
||||
print(f"- {article['title']}")
|
||||
```
|
||||
|
||||
## Frontend Integration
|
||||
|
||||
The support center is integrated with the Next.js frontend at `/support-center` with:
|
||||
- Ticket submission form
|
||||
- Knowledge base browser with search
|
||||
- Ticket status checker
|
||||
- Modern, responsive UI
|
||||
|
||||
## Email Notifications
|
||||
|
||||
To enable email notifications for tickets, configure email settings in `settings.py` and implement email templates in `support/templates/support/`.
|
||||
|
||||
## Security
|
||||
|
||||
- All endpoints are public (AllowAny permission)
|
||||
- Ticket numbers are randomly generated and hard to guess
|
||||
- Internal notes and messages are hidden from public API
|
||||
- Rate limiting recommended for production
|
||||
|
||||
## Future Enhancements
|
||||
|
||||
- [ ] Live chat integration
|
||||
- [ ] File attachments for tickets
|
||||
- [ ] Email notifications
|
||||
- [ ] Ticket assignment and routing
|
||||
- [ ] SLA breach alerts
|
||||
- [ ] Advanced analytics dashboard
|
||||
- [ ] Webhook notifications
|
||||
|
||||
Reference in New Issue
Block a user