Skip to content

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

Notifications You must be signed in to change notification settings

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