https://github.com/adhamelrouby/ticket-iq
π« AI-powered support ticket system with MERN stack, using Google Gemini AI to analyze tickets, prioritize issues, generate summaries, and send real-time notifications
https://github.com/adhamelrouby/ticket-iq
background-jobs expressjs gemini-api inngest inngest-agent-kit mui-material nodejs reactjs real-time-notifications redux-toolkit rest-api socket-io tailwindcss typescript web-development
Last synced: 2 months ago
JSON representation
π« AI-powered support ticket system with MERN stack, using Google Gemini AI to analyze tickets, prioritize issues, generate summaries, and send real-time notifications
- Host: GitHub
- URL: https://github.com/adhamelrouby/ticket-iq
- Owner: AdhamElRouby
- License: mit
- Created: 2025-09-13T19:35:07.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-24T01:39:05.000Z (9 months ago)
- Last Synced: 2025-09-24T03:27:45.706Z (9 months ago)
- Topics: background-jobs, expressjs, gemini-api, inngest, inngest-agent-kit, mui-material, nodejs, reactjs, real-time-notifications, redux-toolkit, rest-api, socket-io, tailwindcss, typescript, web-development
- Language: TypeScript
- Homepage: https://ticket-iq.vercel.app
- Size: 7.89 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ticket IQ: AI Ticket Management System
A modern full-stack web application designed to streamline support ticket management with AI-powered analysis and real-time collaboration. Built with a React.js frontend and Node.js backend, the system automatically analyzes incoming tickets using Google's Gemini AI to determine priority levels, generate summaries, and provide helpful resources for efficient resolution.

## π Live Deployment
**π Frontend**: [https://ticket-iq.vercel.app](https://ticket-iq.vercel.app)
**π§ Backend API**: [https://ticket-iq.onrender.com](https://ticket-iq.onrender.com)
**π API Documentation**: [https://ticket-iq.onrender.com/api-docs](https://ticket-iq.onrender.com/api-docs)
## Tech Stack
-
-
-
-
-
-
-
-
- 
## Features
### π€ AI-Powered Ticket Analysis
- **Automatic Priority Assessment**: AI analyzes ticket content to determine urgency levels (low, medium, high, critical)
- **Intelligent Summarization**: Generates concise summaries of complex technical issues
- **Resource Recommendations**: Provides relevant documentation links and helpful notes for moderators
- **Skill Matching**: Identifies technical skills required for ticket resolution
### π₯ User Management & Authentication
- **Secure Authentication**: JWT-based authentication with refresh token support
- **Role-Based Access Control**: Admin and user roles with appropriate permissions
- **User Profiles**: Comprehensive user management with **email verification**
- **Protected Routes**: Client-side route protection based on authentication status
### π« Advanced Ticket Management
- **Real-time Updates**: Live ticket status updates using WebSocket connections
- **Ticket Assignment**: Smart assignment system for moderators and technicians
- **Status Tracking**: Complete ticket lifecycle management (TODO β IN_PROGRESS β ASSIGNED β DONE)
- **Advanced Filtering**: Filter tickets by status, priority, and assignment
### β‘ Real-time Notifications
- **Live Notifications**: Instant updates on ticket progress and assignments
- **Progress Tracking**: Live toast notifications for ticket analysis and assignment
### π§ Technical Features
- **RESTful API**: Well-structured backend API with comprehensive endpoints
- **Background Jobs**: Handles asynchronous tasks such as ticket analysis, **email notifications**, and scheduled maintenance using Inngest for reliable job processing.
- **Data Validation**: Input validation and sanitization for security
- **Error Handling**: Comprehensive error handling with custom error classes
- **Rate Limiting**: API rate limiting for enhanced security
- **API Documentation**: Swagger/OpenAPI documentation for easy integration
## Privacy Terms
Please note that all ticket information, user data, and communication within the web application will be securely stored in MongoDB. These data points will be handled responsibly and will not be misused in any way.
For users signing in with **email**, only your email address and profile information will be visible to administrators for ticket assignment purposes, while your **password** is securely hashed using bcrypt and remains inaccessible.
**AI Analysis**: Ticket content is processed by Google's Gemini AI to provide intelligent analysis and recommendations. This processing is done securely and no sensitive data is retained by the AI service beyond the analysis session.
**Real-time Communication**: WebSocket connections are used for real-time updates and are secured with proper authentication mechanisms.
**Your privacy and data security are paramount.** All sensitive information is encrypted in transit and at rest.
## Run Locally
Clone the project
```bash
git clone https://github.com/AdhamElRouby/Ticket-IQ.git
```
Go to the project directory
```bash
cd Ticket-IQ
```
### Backend Setup
Navigate to the server directory
```bash
cd server
```
Install server dependencies
```bash
npm install
```
Create environment file and add your variables
```bash
cp .env.example .env
```
Required environment variables:
- `MONGODB_URI` - Your MongoDB connection string
- `JWT_SECRET` - Secret key for JWT tokens
- `JWT_REFRESH_SECRET` - Secret key for refresh tokens
- `GEMINI_API_KEY` - Google Gemini AI API key
- `EMAIL_SERVICE` - Email service configuration
- `INNGEST_EVENT_KEY` - Inngest event key for background jobs
Start the development server
```bash
npm run dev
```
Start the Inngest development server (in a separate terminal)
```bash
npm run inngest-dev
```
### Frontend Setup
Navigate to the client directory
```bash
cd client
```
Install client dependencies
```bash
npm install
```
Start the development server
```bash
npm run dev
```
The application will be available at:
- Frontend: `http://localhost:5173`
- Backend: `http://localhost:3000`
- API Documentation: `http://localhost:3000/api-docs`
## Contributing
I welcome contributions to this project! Feel free to submit pull requests and suggest improvements.
If you have any questions or need assistance, donβt hesitate to contact me at adhamelrouby@aucegypt.edu.
## License
This project is licensed under the [MIT License](LICENSE).