Skip to content

A full-stack ticketing app built with React and Node.js + Express. Users can log in, submit support tickets by product, and receive email confirmations. Admins are notified via Gmail SMTP. Features include ticket history modals, live form validation, and a custom loading spinner.

Notifications You must be signed in to change notification settings

Py-sharp/Support-Ticket-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

  1. Clone the repo git clone https://github.com/Py-sharp/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:3000

  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: 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

About

A full-stack ticketing app built with React and Node.js + Express. Users can log in, submit support tickets by product, and receive email confirmations. Admins are notified via Gmail SMTP. Features include ticket history modals, live form validation, and a custom loading spinner.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •