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.
- β 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)
- Backend: Node.js, Express.js
- AI Integration: Google AI Studio (Gemini API)
- Background Jobs: Inngest
- Email Service: Nodemailer
- Database: (MongoDB)
- Frontend: (Vite React)
Client App βββΆ Express Server βββΆ MongoDB
β
ββββΆ Inngest Queue βββΆ Google Gemini AI
ββββΆ Nodemailer
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
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
1οΈβ£ Clone the Repo
git clone https://github.com/rajveer-09/SmartTicket-AI.git
cd SmartTicket-AI/BACKEND
npm install
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
npm start
- Recommended Platforms: Render, Railway, Vercel, Heroku
- Add environment variables securely
- Keep your secrets safe
Fork & Clone
Create a new feature branch
Raise a Pull Request
- MIT License
- Inngest β Event-driven jobs
- Google AI Studio β AI Capabilities
- Nodemailer β Email Services
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Application β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββ
β Express Server β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββ β
β β Auth Routes β βTicket Routesβ β Admin Routes β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββ β
βββββββββββββ¬βββββββββββββββββββββββββββββββ¬βββββββββββββ
β β
βββββββββββββΌββββββββββββββ ββββββββββββΌββββββββββββ
β MongoDB β β Inngest Queue β
β βββββββββββββββββββββ β β ββββββββββββββββββ β
β β Tickets β β β β AI Processing β β
β βββββββββββββββββββββ€ β β ββββββββββββββββββ€ β
β β Users β β β β Notifications β β
β βββββββββββββββββββββ€ β β ββββββββββββββββββ€ β
β β Moderators β β β β Assignments β β
β βββββββββββββββββββββ β β ββββββββββββββββββ β
βββββββββββββββββββββββββββ ββββββββββββββββββββββββ
β β
ββββββββββββββββ¬ββββββββββββββββ
β
βββββββββββΌββββββββββ
β Google Gemini AI β
βββββββββββββββββββββ