Modern, scalable, and AI-powered helpdesk management system.
- 🎫 Ticket Management - Comprehensive ticket creation, updating, and tracking system
- 🔐 JWT Authentication - Secure user authentication
- 🤖 AI Integration - Automated response suggestions with Google Gemini
- 📧 Email Notifications - Asynchronous email delivery
- ⚡ Cache Management - Performance optimization with Redis
- 🔄 Queue Management - Background job processing with BullMQ
- 🛡️ Rate Limiting - API security and abuse prevention
- 📊 Swagger API Documentation - Automatic API reference
- Framework: NestJS
- Database: PostgreSQL + Prisma ORM
- Cache: Redis
- Queue: BullMQ
- Authentication: JWT + Passport
- AI: Google Gemini API
- Email: Nodemailer
- Framework: Angular 21
- Build Tool: Nx
- Monorepo: Nx Workspace
- Package Manager: pnpm
- Code Quality: ESLint + Prettier + Husky
- Node.js >= 18
- pnpm >= 8
- PostgreSQL >= 14
- Redis >= 6
- Docker (optional)
- Clone the repository:
git clone <repository-url>
cd helpdesk- Install dependencies:
pnpm install- Configure environment variables:
cp .env.example .env
# Update .env file with your own values- Start PostgreSQL and Redis with Docker:
docker-compose up -d- Run database migrations:
pnpm prisma:migrate:dev- Generate Prisma Client:
pnpm prisma:generatepnpm startpnpm start:apiAPI runs on http://localhost:3000 by default.
Swagger documentation: http://localhost:3000/api
pnpm start:clientFrontend runs on http://localhost:4200 by default.
# View database with Prisma Studio
pnpm prisma:studio
# Create new migration
pnpm prisma:migrate:dev
# Apply migrations in production
pnpm prisma:migrate:deploypnpm build:allpnpm build:apipnpm build:client# Run all tests
pnpm test:all
# Test only affected code
pnpm test:affected
# Run lint checks
pnpm lint:all
# Auto-fix lint errors
pnpm lint:all:fix
# Format code
pnpm formathelpdesk/
├── apps/
│ ├── api/ # NestJS backend application
│ └── client/ # Angular frontend application
├── libs/
│ ├── api/
│ │ ├── auth/ # Authentication module
│ │ ├── tickets/ # Ticket management
│ │ ├── users/ # User management
│ │ ├── ai/ # AI integration
│ │ ├── mail/ # Email service
│ │ ├── queue/ # Queue management
│ │ ├── cache/ # Cache management
│ │ └── data-access-db/ # Prisma + Database
│ └── shared/
│ ├── config/ # Shared configuration
│ └── interfaces/ # Shared types
└── docker-compose.yml # PostgreSQL + Redis
API documentation is available at http://localhost:3000/api.
POST /auth/register- User registrationPOST /auth/login- User loginGET /tickets- List ticketsPOST /tickets- Create new ticketGET /tickets/:id- Get ticket detailsPATCH /tickets/:id- Update ticket
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT