This project demonstrates the development of a comprehensive Ticket CRM (Customer Relationship Management) System that enables efficient management of customer tickets, knowledge base articles, and user profiles.
The Ticket CRM System is a modern web application designed to streamline customer support processes by providing an intuitive interface for managing tickets, user details, and a knowledge base. The Front-End is built using React and TypeScript, ensuring a responsive and dynamic user experience across devices. The Back-End, powered by Node.js and Express, manages data processing and integration efficiently, with a MySQL database handling persistent data storage.
- React
- TypeScript
- CSS (optional: TailwindCSS)
- Node.js
- Express
- TypeScript
- MySQL
- User Management: Create, edit, and manage user profiles, including role assignment and profile pictures.
- Ticket Management: Submit, edit, and track customer support tickets with status updates and priority levels.
- Knowledgebase: Create and manage knowledge base articles with categories and attachment support.
- Commenting System: Add comments to tickets for detailed discussions and tracking.
First, set up a MySQL server and correctly fill the environment (.env) details (Frontend + Backend).
- Create a new DB as you nammed it in your .env file.
- Execute the
Populate-SQL.sql
file in this directory.
Second, run the Front-End server:
- In a new terminal, navigate to the frontend folder.
npm start
Third, run the Back-End server:
- In a new terminal, navigate to the backend folder.
npm start
Open http://localhost:3001 with your browser to see the result.
You can start editing the project by modifying files in the frontend or backend directories. The page auto-updates as you edit the files.
- Tickets API: Handles ticket creation, retrieval, updating, and deletion.
- Users API: Manages user profiles, authentication, and authorization.
- Knowledgebase API: Supports CRUD operations for knowledge base articles and categories.
- Users: Stores user details including username, email, role, and profile picture.
- Tickets: Stores customer tickets with fields for title, description, status, priority, and creation date.
- Comments: Stores comments related to tickets, with a reference to the ticket ID.
- Knowledgebase: Stores knowledge base articles with categories and attachments.
- Categories: Stores categories for organizing knowledge base articles.