Skip to content

rajveer-09/SmartTicket-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 Smart Ticketing AI Agent System

An intelligent AI-powered ticketing system built with Node.js, Express.js, Inngest, Nodemailer, and Google AI APIs.
This system automatically assigns tickets, suggests helpful notes, matches skills, and updates ticket status.


πŸš€ Features

  • βœ… User Authentication & Authorization
  • βœ… AI Agent Assignment using Google AI API
  • βœ… Skill Matching & Ticket Assignment to Moderators
  • βœ… Helpful Notes Generation with AI
  • βœ… Auto Status Update for Tickets
  • βœ… Email Notifications using Nodemailer
  • βœ… Background Jobs Handling with Inngest
  • βœ… Clean RESTful API with Express.js
  • βœ… Modular Code Structure (Backend + Frontend)

▢️ Demo

image
image
image
image

πŸ› οΈ Tech Stack

  • Backend: Node.js, Express.js
  • AI Integration: Google AI Studio (Gemini API)
  • Background Jobs: Inngest
  • Email Service: Nodemailer
  • Database: (MongoDB)
  • Frontend: (Vite React)

πŸ—ΊοΈ System Overview

 Client App ──▢ Express Server ──▢ MongoDB β”‚ β”œβ”€β”€β–Ά Inngest Queue ──▢ Google Gemini AI └──▢ Nodemailer 

πŸ“‚ Project Folder Structure

SmartTicket-AI β”œβ”€β”€ BACKEND β”‚ β”œβ”€β”€ controllers β”‚ β”œβ”€β”€ middlewares β”‚ β”œβ”€β”€ models β”‚ β”œβ”€β”€ routes β”‚ β”œβ”€β”€ utils β”‚ β”œβ”€β”€ inngest β”‚ β”œβ”€β”€ .env β”‚ β”œβ”€β”€ index.js β”‚ β”œβ”€β”€ package.json β”œβ”€β”€ FRONTEND β”‚ β”œβ”€β”€ components β”‚ β”‚ β”œβ”€β”€ admin β”‚ β”‚ β”œβ”€β”€ auth β”‚ β”‚ β”œβ”€β”€ common β”‚ β”‚ β”œβ”€β”€ tickets β”‚ β”œβ”€β”€ contexts β”‚ β”œβ”€β”€ hooks β”‚ β”œβ”€β”€ services β”‚ β”œβ”€β”€ .env β”‚ β”œβ”€β”€ App.tsx β”‚ β”œβ”€β”€ index.tsx β”‚ β”œβ”€β”€ package.json β”œβ”€β”€ README.md 

βš™οΈ How AI Agent Works

1️⃣ User creates a ticket
2️⃣ AI Agent reads the ticket & analyzes it via Google AI API
3️⃣ Suggests Helpful Notes
4️⃣ Matches Relevant Skills with Moderators
5️⃣ Auto assigns the ticket to best-fit Moderator
6️⃣ Updates ticket Status
7️⃣ Sends notification emails via Nodemailer
8️⃣ Runs background tasks using Inngest


πŸ–₯️ Local Setup

1️⃣ Clone the Repo

git clone https://github.com/rajveer-09/SmartTicket-AI.git cd SmartTicket-AI/BACKEND 

2️⃣ Install Dependencies

npm install 

3️⃣ Configure .env

MONGO_URI= PORT= JWT_SECRET= MAILTRAP_SMTP_HOST= MAILTRAP_SMTP_PORT= MAILTRAP_SMTP_USER= MAILTRAP_SMTP_PASS= GEMINI_API_KEY= APP_URL= GMAIL_USER= GMAIL_PASS= INGGEST_SIGNING_KEY= 

βœ… Don't forget to add .env in .gitignore


4️⃣ Start the Server

npm start 

πŸš€ Deployment Tips

  • Recommended Platforms: Render, Railway, Vercel, Heroku
  • Add environment variables securely
  • Keep your secrets safe

🀝 Contributing

Fork & Clone Create a new feature branch Raise a Pull Request 

πŸ‘¨β€πŸ’» Author


πŸ“„ License

  • MIT License

πŸ™Œ Special Thanks

  • Inngest β€” Event-driven jobs
  • Google AI Studio β€” AI Capabilities
  • Nodemailer β€” Email Services

πŸ“Š System Architecture

 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Client Application β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Express Server β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Auth Routes β”‚ β”‚Ticket Routesβ”‚ β”‚ Admin Routes β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MongoDB β”‚ β”‚ Inngest Queue β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Tickets β”‚ β”‚ β”‚ β”‚ AI Processing β”‚ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Users β”‚ β”‚ β”‚ β”‚ Notifications β”‚ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Moderators β”‚ β”‚ β”‚ β”‚ Assignments β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Google Gemini AI β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 

About

AI-powered smart ticketing system with automated assignment, skill matching, helpful notes, and status updates.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published