A modern, full-stack ticket management system built with Next.js, TypeScript, and Tailwind CSS. This application provides a comprehensive solution for managing support tickets with role-based access control, real-time updates, and an intuitive admin dashboard.
Live Application - https://ticketpro-uk6x.onrender.com/
- Secure JWT-based authentication
- Role-based access control (RBAC)
- Protected routes and components
- User session management
- Regular Users: Create and manage their own tickets
- Support Agents: Handle assigned tickets and customer support
- Administrators: Full system access and user management
- Create, view, and update tickets
- Advanced filtering and search
- Priority and status management
- File attachments support
- Real-time status updates
- User management (add, edit, assign roles)
- Ticket oversight (view all tickets, assign agents)
- System analytics and reporting
- Role assignment and permissions
- Responsive design for all devices
- Dark/Light theme support
- Smooth animations with Framer Motion
- Professional dashboard layout
- Intuitive navigation
- Node.js (v18 or higher)
- npm or yarn
- Backend API (Spring Boot with PostgreSQL)
-
Clone the repository
git clone <repository-url> cd ticket-system
-
Install dependencies
npm install # or yarn install -
Environment Setup Create a
.env.localfile in the root directory:NEXT_PUBLIC_API_URL=http://localhost:8080/ NEXT_PUBLIC_APP_NAME=Ticket Management System
-
Start the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
ticket-system/
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ dashboard/ # Dashboard pages
β β β βββ admin/ # Admin panel
β β β βββ all-tickets/ # All tickets view
β β β βββ users/ # User management
β β β βββ tickets/ # Ticket management
β β βββ login/ # Authentication
β β βββ register/ # User registration
β βββ components/ # Reusable components
β β βββ admin/ # Admin-specific components
β β βββ auth/ # Authentication components
β β βββ layout/ # Layout components
β β βββ ui/ # UI components
β βββ contexts/ # React contexts
β βββ lib/ # Utilities and API
β βββ types/ # TypeScript definitions
βββ public/ # Static assets
βββ tailwind.config.js # Tailwind CSS configuration
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Database & Backend
npm run db:setup # Setup database (if applicable)
npm run api:start # Start backend API (if included)- Email:
user@demo.com - Password:
user123 - Role:
USER - Access: Create and view own tickets
- Email:
agent@demo.com - Password:
agent123 - Role:
ROLE_AGENT - Access: Handle assigned tickets
- Email:
admin@demo.com - Password:
admin123 - Role:
ADMIN - Access: Full system management
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- React Hook Form - Form management
- Zod - Schema validation
- Axios - HTTP client
- React Hot Toast - Notifications
- Spring Boot - Java backend framework
- PostgreSQL - Database
- JWT - Authentication tokens
- RESTful API - API design
- Role-based navigation
- Quick actions for common tasks
- Recent activity overview
- Statistics and metrics
- Create tickets with detailed information
- Filter and search functionality
- Status tracking (Open, In Progress, Resolved, Closed)
- Priority levels (Low, Medium, High, Urgent)
- Agent assignment
- User management (CRUD operations)
- Role assignment and permissions
- Ticket oversight and assignment
- System analytics and reporting
- JWT token authentication
- Protected API routes
- Role-based access control
- Input validation and sanitization
- CORS configuration
- Secure session management
npm run build
npm run startNEXT_PUBLIC_API_URL=https://your-api-domain.com/api
NEXT_PUBLIC_APP_NAME=Your App Name- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Troubleshooting Guide
- Review the Backend Integration Guide
- Create an issue in the repository
- Contact the development team
- Built with β€οΈ using Next.js and TypeScript
- UI components inspired by modern design systems
- Backend integration with Spring Boot and PostgreSQL
Happy Ticket Managing! π«β¨