π Support Ticket System
A simple full-stack support ticketing system built with React (frontend) and Node.js + Express (backend). Users can log in, submit support tickets, view their ticket history per product, and receive email confirmations. Admin also gets notified via email when a ticket is created.
π Features
π User login π Create support tickets with:
Product name
Title
Description
Category (General, Technical, Billing)
Priority (Low, Medium, High)
π© Email notifications (sent to both user and admin)
ποΈ View ticket history by product (popup modal)
β³ Loading spinner on ticket submission
π Logout option
π οΈ Tech Stack
Frontend: React (CRA), Fetch API
Backend: Node.js, Express.js, Nodemailer, Firebase
Email Service: Gmail SMTP
Styling: Basic CSS (custom spinner)
βοΈ Installation
-
Clone the repo git clone https://github.com/Py-sharp/Support-Ticket-System.git cd support-ticket-system
-
Setup backend cd server npm install
Run backend:
node index.js
Server should start at: π http://localhost:3000
- Setup frontend cd ../client npm install
Run frontend:
npm start
App should open at: π http://localhost:3000
π Login Credentials
For now, login is hardcoded (can be extended with DB):
User Email: selekeamogetsoe@gmail.com
Password: password123
π§ Email Configuration
Backend uses Nodemailer with Gmail.
Check server/config.json (or put in package.json for now):
"Email": { "Username": "kgomotsosele80@gmail.com", "Password": "ensfuzffghnszohk", "SmtpServer": "smtp.gmail.com", "Port": 587 }
Replace Username & Password with your Gmail and App Password.
Both admin and user get an email when a ticket is created.
πΌοΈ Screenshots
β Login page
β Create ticket form
β Ticket list with "View History" popup
β Spinner on submit
π§ Future Enhancements
Database integration (MongoDB / SQL) for persistent tickets
User registration & authentication (JWT / OAuth)
Admin dashboard for managing tickets
File attachments