A robust, real-time platform for support ticket management—built with Django REST Framework, Django Channels, and React, featuring true role-based access and live updates.
- Raise & Track Tickets: Users create, view, update, and delete support tickets.
- Admin Controls: Administrators can manage all tickets: assign, resolve, and delete.
- Real-Time Updates: Ticket changes are instantly visible via WebSockets—no refresh required.
- Role-Based Access: Standard users access their own tickets; admins have full visibility and control.
- Authentication: Secure login and access implemented with Django’s built-in user system.
- Filtering: Dashboard allows sorting by status, priority, and user.
- Modern, Responsive UI: Built with Material UI (or Tailwind CSS) for a professional look.
- Validation & Error Handling: Robust form validation and user-friendly API error responses.
- Backend: Python, Django, Django REST Framework, Django Channels, Daphne (ASGI)
- Frontend: React, JavaScript, Material UI or Tailwind CSS
- Database: SQLite (development; ready for PostgreSQL in production)
- Authentication: Django user authentication
ticketzen/ ├── ticket-manager-frontend/ │ └── src/pages/ │ ├── Login.jsx │ ├── Dashboard.jsx │ ├── TicketDetail.jsx │ └── Admin.jsx │ └── ... └── ticket_system/ ├── ticket_system/settings.py ├── asgi.py └── ...
- Install dependencies:
pip install -r requirements.txt - Apply migrations:
python manage.py migrate - Create superuser (admin):
python manage.py createsuperuser - Start ASGI server (WebSockets):
daphne ticket_system.asgi:application
- Install dependencies:
cd ticket-manager-frontend && npm install - Start development server:
npm start
| Method | Endpoint | Description | Access |
|---|---|---|---|
| POST | /tickets/ | Create a new support ticket | User/Admin |
| GET | /tickets/ | List tickets; filter by status/priority/user | User/Admin |
| GET | /tickets// | Retrieve ticket details | User/Admin |
| PUT | /tickets// | Update ticket (status, assign, etc) | User/Admin |
| DELETE | /tickets// | Delete a ticket | User/Admin |
- User: Can view and modify only their tickets.
- Admin: Can manage all tickets.
- Live ticket updates (creation, update, assign, delete) broadcast to all clients.
- Powered by Django Channels and Daphne.
- Launch backend and frontend locally.
- Visit http://localhost:3000.
- Log in as normal user or admin.
- Users manage their own tickets; admins manage all tickets.
Contributions are welcome! Open issues or submit pull requests for improvements or fixes.
MIT License.