Skip to content

Py-sharp/Support-Ticket-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Œ 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 (hardcoded for now, can be extended with DB later)

πŸ“ 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

Email Service: Gmail SMTP

Styling: Basic CSS (custom spinner)

πŸ“‚ Project Structure Support-Ticket-System/ │── client/ # React frontend β”‚ β”œβ”€β”€ src/ β”‚ β”‚ β”œβ”€β”€ App.js # Main React app β”‚ β”‚ β”œβ”€β”€ App.css # Styling (spinner, UI tweaks) β”‚ β”‚ └── index.js # Entry point β”‚ └── package.json # React dependencies β”‚ │── server/ # Node.js backend β”‚ β”œβ”€β”€ index.js # Express server & routes β”‚ β”œβ”€β”€ package.json # Backend dependencies β”‚ └── config.json # Email configuration β”‚ │── README.md # Project documentation

βš™οΈ Installation

  1. Clone the repo git clone https://github.com/your-username/support-ticket-system.git cd support-ticket-system

  2. Setup backend cd server npm install

Run backend:

node index.js

Server should start at: πŸ‘‰ http://localhost:5000

  1. 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: [email protected]

Password: password123

πŸ“§ Email Configuration

Backend uses Nodemailer with Gmail.

Check server/config.json (or put in package.json for now):

"Email": { "Username": "[email protected]", "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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •