- Introduction
- Features
- Technologies Used
- Setup and Installation
- Running the Application
- Endpoints and API Documentation
- Future Prospects
- Contributing
- License
The Ticket Management System is a web application designed to streamline the process of managing and tracking tickets for various issues and requests within an organization. It supports dynamic user roles and provides a user-friendly interface for creating, assigning, and tracking tickets.
- Dynamic user roles (Admin, Internal, Partner, Helpdesk) with tailored permissions.
- Automated field setting for
Requested_by
,Organization
, andPartner_Name
. - Dynamic dropdowns based on user role and organization selection.
- Multi-file uploads with support for various file types.
- Responsive UI designed with Tailwind CSS.
- Role-based access control.
- Real-time updates and notifications.
- Frontend: React, Tailwind CSS, JavaScript
- Backend: Node.js, Express.js
- Database: PostgreSQL
- Authentication: JWT, LocalStorage
- Deployment (Future): AWS (EC2, RDS, S3), Nginx, PM2
Ensure you have the following installed on your machine:
- Node.js
- npm (Node Package Manager)
- PostgreSQL
- Clone the repository:
git clone https://github.com/your-repo/ticket-management-system.git cd ticket-management-system/backend
- Install Dependencies:
npm install
- Setup Postgres:
{ "development": { "username": "your_db_username", "password": "your_db_password", "database": "your_db_name", "host": "127.0.0.1", "dialect": "postgres" } }
- Run Database Migrations:
npx sequelize-cli db:migrate
- Start backend server:
npm start
- GET /api/users: Get all users
- GET /api/users/:id: Get a specific user
- POST /api/users: Create a new user
- PUT /api/users/:id: Update a user
- DELETE /api/users/:id: Delete a user
- GET /api/tickets: Get all tickets
- GET /api/tickets/:id: Get a specific ticket
- POST /api/tickets: Create a new ticket
- PUT /api/tickets/:id: Update a ticket
- DELETE /api/tickets/:id: Delete a ticket
- AWS EC2: Set up an EC2 instance to host the backend server.
- AWS RDS: Migrate the PostgreSQL database to AWS RDS for better scalability and management.
- AWS S3: Use S3 for storing uploaded files.
- Nginx: Configure Nginx as a reverse proxy to manage incoming requests.
- PM2: Use PM2 process manager to ensure the Node.js application runs continuously and to manage downtimes.
- AWS: Gain expertise in setting up and managing AWS services.
- Nginx: Learn to configure and optimize Nginx for better performance and security.
- PM2: Use PM2 for advanced process management and monitoring.
We welcome contributions to improve the Ticket Management System. Please follow these steps:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.