Skip to content

Sistema de gestión de tickets. Permite a los usuarios crear, ver y gestionar tickets de soporte, facilitando la comunicación entre clientes y el equipo de soporte.

License

Notifications You must be signed in to change notification settings

israelinxy/ticketing-system

Repository files navigation

🎟️ Sistema de Tickets

Sistema de gestión de tickets construido con Node.js y Express.js. Este proyecto permite a los usuarios crear, ver y gestionar tickets de soporte, facilitando la comunicación entre clientes y el equipo de soporte.

Características

  • ✅ Creación de tickets
  • 📜 Visualización de tickets
  • 🔄 Actualización del estado de los tickets
  • 🌐 API RESTful para la gestión de tickets
  • 🛡️ Seguridad mejorada con Helmet y rate limiting

Tecnologías Utilizadas

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose

Requisitos Previos

Asegúrate de tener instalados los siguientes programas en tu máquina:

Instalación

Sigue estos pasos para configurar el proyecto en tu entorno local:

  1. Clona el repositorio:

    git clone https://github.com/israelinxy/ticketing-system.git
  2. Navega al directorio del proyecto:

    cd ticketing-system
  3. Instala las dependencias:

    npm install
  4. Configura las variables de entorno. Crea un archivo .env en la raíz del proyecto y añade lo siguiente:

    MONGODB_URI=tu_uri_de_mongodb
    PORT=3000
    
  5. Inicia el servidor:

    npm start
  6. Abre tu navegador y visita http://localhost:3000 para ver la aplicación en acción.

Uso

Una vez que el servidor esté en funcionamiento, puedes interactuar con la API a través de herramientas como Postman o cURL. Aquí hay algunos ejemplos de cómo utilizar la API:

Crear un Ticket

POST /api/tickets
Content-Type: application/json

{
  "titulo": "Problema con el producto",
  "descripcion": "No puedo acceder a mi cuenta."
}

Obtener Todos los Tickets

GET /api/tickets

Actualizar un Ticket

PUT /api/tickets/:id
Content-Type: application/json

{
  "estado": "resuelto"
}

Scripts

El proyecto incluye varios scripts útiles que puedes ejecutar desde la línea de comandos:

  • npm start: Inicia el servidor en modo producción.
  • npm run dev: Inicia el servidor en modo desarrollo con recarga automática.
  • npm test: Ejecuta las pruebas utilizando Jest.
  • npm run db:populate: Puebla la base de datos con datos iniciales.

Dependencias

Este proyecto utiliza las siguientes dependencias:

Dependencias Principales

  • bcrypt: Para el hash seguro de contraseñas.
  • compression: Middleware para comprimir las respuestas HTTP.
  • cors: Middleware para habilitar CORS.
  • dotenv: Para manejar variables de entorno.
  • express: Framework web para Node.js.
  • express-rate-limit: Para limitar las solicitudes a la API.
  • helmet: Para proteger aplicaciones Express estableciendo cabeceras HTTP seguras.
  • jsonwebtoken: Para manejar autenticación basada en tokens.
  • mongoose: Para interactuar con MongoDB.
  • uuid: Para generar identificadores únicos universales.
  • winston: Para registrar eventos y errores.

Dependencias de Desarrollo

  • @babel/core, @babel/preset-env: Para transpilar código moderno a versiones compatibles con Node.js.
  • jest: Framework para pruebas unitarias.
  • joi: Para validación de datos.
  • morgan: Middleware para registrar solicitudes HTTP.
  • supertest: Para realizar pruebas HTTP.

Contribuciones 🤝

Las contribuciones son bienvenidas. Para problemas, ideas o nuevas características, por favor abre un issue o un pull request.

Contacto 📫

¿Necesitas un diseño web personalizado? Contáctame:

Gmail

Licencia 📜

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

About

Sistema de gestión de tickets. Permite a los usuarios crear, ver y gestionar tickets de soporte, facilitando la comunicación entre clientes y el equipo de soporte.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published