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 β βββββββββββββββββββββ