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