A modern, performant support ticket management system built with React and Express.
- 🎫 Create and manage support tickets
- 📊 Dashboard with analytics and trends
- 🔐 User authentication with Better Auth
- 🤖 AI-powered ticket classification
- 🌙 Dark mode support
- 📱 Responsive design
- React 19 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- React Query for state management
- Recharts for data visualization
- Framer Motion for animations
- Express.js with Node.js
- Prisma ORM with PostgreSQL
- Better Auth for authentication
- Google Gemini AI for ticket classification
- Zod for validation
- Node.js 18+
- PostgreSQL database
-
Clone the repository
-
Install dependencies:
# Backend cd backend npm install # Frontend cd ../frontend npm install
-
Set up environment variables:
# Backend cp .env.example .env # Edit .env with your database URL and API keys
-
Set up the database:
cd backend npx prisma migrate dev npx prisma generate -
Start the development servers:
# Backend (port 5000) cd backend npm run dev # Frontend (port 5173) cd ../frontend npm run dev
DATABASE_URL- PostgreSQL connection stringGEMINI_API_KEY- Google Gemini API key for AI classificationBETTER_AUTH_SECRET- Secret for authenticationCORS_ORIGIN- Frontend URL (default: http://localhost:5173)
├── backend/
│ ├── src/
│ │ ├── controllers/ # Route handlers
│ │ ├── services/ # Business logic
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Express middleware
│ │ └── config/ # Configuration files
│ ├── prisma/
│ │ └── schema.prisma # Database schema
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── features/ # Feature-specific components
│ │ ├── lib/ # Utilities and configurations
│ │ └── app/ # App setup and routing
│ └── package.json
└── README.md
npm run dev- Start development servernpm start- Start production servernpm run prisma:studio- Open Prisma Studionpm run prisma:migrate- Run database migrations
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
This application includes several performance optimizations:
- Database indexing for fast queries
- Code splitting and lazy loading
- Optimized React Query caching
- Efficient API response patterns
- Minimal bundle sizes
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details.