Skip to content

br4adam/ticket-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ticket Management

💻 About

This full-stack app specifically designed to track issues and manage tickets.

With this application, users can easily create tickets, track their progress and communicate with administrators on the platform. Additionally, a dashboard is provided to allow users to view the status of their tickets and charts for analyzing aggregated ticket data.

🖥️ Demo

🚀 Run locally

Clone the project using the following command:

git clone https://github.com/br4adam/ticket-management

Navigate to the project directory using the following command:

cd ticket-management

Install client dependencies and start the client using the following commands:

cd client
npm install
npm run dev

Install server dependencies, build and start the server using the following commands:

cd server
npm install
npm run build
npm start

⚙️ Environment variables

Before running the app, make sure to create .env files for both the server and client directories with the following variables:

Client environment variables:

VITE_REDIRECT_URI=http://localhost:5173/callback
VITE_SERVER_URL=http://localhost:8000
VITE_CLIENT_ID=<YOUR_GOOGLE_OAUTH_CLIENT_ID>

Server environment variables:

PORT=8000
MONGO_URI=<THE_URL_OF_YOUR_MONGODB_DATABASE>
GOOGLE_CLIENT_ID=<YOUR_GOOGLE_OAUTH_CLIENT_ID>
GOOGLE_CLIENT_SECRET=<YOUR_GOOGLE_OAUTH_SECRET_KEY>
GOOGLE_REDIRECT_URI=http://localhost:5173/callback
JWT_SECRET_KEY=<YOUR_JWT_SECRET_KEY>
TOKEN_EXPIRATION_TIME=2h

🧰 Tools and technologies

  • MongoDB Atlas: A cloud-based fully managed database-as-a-service for MongoDB.
  • Mongoose: An ODM library that creates a connection between MongoDB and Node.js.
  • Node: An open-source, cross-platform JavaScript runtime environment.
  • Express: A web framework for Node.js that makes building web applications and APIs easier.
  • React: A JavaScript library for building user interfaces using reusable components.
  • Zod: A TypeScript-first schema validation library with a focus on developer experience.
  • Axios: A promise based HTTP client for the browser and Node.js.
  • RxJS: A reactive programming library for JavaScript.
  • Json Web Tokens: A standard for securely transmitting information between parties as a JSON object.
  • Jest: A delightful JavaScript testing framework.
  • Supertest: A Node.js library for testing APIs.
  • Swagger: A set of tools used to generate documentation for REST APIs.
  • Recharts: A composable charting library for building declarative and reusable charts.
  • i18next: An internationalization framework for JavaScript.