Skip to content

AI-powered ticketing system with automatic triage, skill tagging, moderator assignment, and email notifications. Built with React, Node.js, MongoDB, and Inngest.

Notifications You must be signed in to change notification settings

pkbtc/smart-support-tickets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

ai-ticketing-system

AI-powered ticketing and support system with automatic triage, skill tagging, and moderator assignment.

Features

  • User Authentication: Sign up, log in, and manage user roles (user, admin, moderator).
  • Ticket Creation: Users can create support tickets with title and description.
  • AI Ticket Triage: Each ticket is analyzed by an AI agent (Google Gemini) to:
    • Summarize the issue
    • Estimate priority (low, medium, high)
    • Provide helpful notes for moderators
    • Tag relevant technical skills
  • Automatic Assignment: Tickets are auto-assigned to moderators/admins with matching skills.
  • Email Notifications: Moderators receive email notifications when assigned a ticket.
  • Admin Panel: Admins can view and manage all users and tickets.
  • Modern UI: Built with React, TailwindCSS, and DaisyUI for a clean, responsive interface.

Tech Stack

  • Frontend: React, React Router, TailwindCSS, DaisyUI, Vite
  • Backend: Node.js, Express, Mongoose (MongoDB), JWT Auth, Nodemailer
  • AI Integration: Google Gemini via @inngest/agent-kit
  • Workflow Orchestration: Inngest (local dev or cloud)
  • Email: Gmail SMTP (or Mailtrap for dev)

Getting Started

Prerequisites

  • Node.js (v18+)
  • MongoDB (local or cloud)
  • Inngest CLI (for local dev)
  • (Optional) Mailtrap or Gmail account for email notifications

Environment Variables

Create .env files in both backend/ and frontend/ as needed.

Example for backend/.env:

MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
GMAIL_USER=your_gmail_address@gmail.com
GMAIL_PASS=your_gmail_app_password
INNGEST_EVENT_KEY=your_inngest_event_key   # (for cloud)
INNGEST_EVENT_URL=https://events.inngest.com/v1/your-app-id  # (for cloud)

Example for frontend/.env:

VITE_SERVER_URL=http://localhost:3000/api

Installation

Backend:

cd backend
npm install
npm run dev

Frontend:

cd frontend
npm install
npm run dev

Inngest Dev Server (for local AI workflows):

cd backend
npm run inngest-dev

Usage

  • Visit http://localhost:5173 (or your Vite dev port) to use the app.
  • Sign up, log in, and create tickets.
  • Admins can access the /admin panel.
  • Moderators receive email notifications for assigned tickets.

Deployment

  • Deploy backend and frontend to your preferred platform (Vercel, Netlify, AWS, etc.).
  • Use Inngest Cloud for production workflows (see Inngest docs).
  • Set all environment variables in your deployment environment.

License

MIT

About

AI-powered ticketing system with automatic triage, skill tagging, moderator assignment, and email notifications. Built with React, Node.js, MongoDB, and Inngest.

Resources

Stars

Watchers

Forks

Languages