Uncensored-Developer / ticketing_system

A tool that would allow a customer to directly reach out to a customer support from within any app via a ticketing system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ticketing_system

Documentation Status

A tool that would allow a customer to directly reach out to a customer support from within any app via a ticketing system.

Usage

  • install the dependencies in the 'requirements_dev.txt' file
  • setup up the DATABASE_URL in environment variable
  • run the 'initial_db_setup.py' file to setup the database and table and load some test data
  • run 'flask run' to start the project (i.e running of localhost:5000 by default)
  • This is just a simple project nothing production level or real world here
  • There is no standard authentication system for this project

Endpoints

  • GET /users

    To get a list of users to work with. It's just the token that is needed for a simple auth system. To be authenticated pass one other the tokens in the header as 'Authorization: Bearer <token>'. There are two user_types: customer and staff with different priviledges. E.g a customer can only view and reply a ticket created by them only but a staff can view and reply all tickets

  • GET /tickets

    To list all the tickets to a customer or all tickets if authemticated as a staff. Some parameters can be passed to filter the list like code, closed, department, priority. Example: https://localhost:5000/tickets?priority=low

  • POST /tickets

    To create(open) a ticket. it takes the paramenters: subject, priority (i.e low, medium and high), department (i.e sales, technical and security) and message. When a ticket is created unique code is assigned to it for identification. Example: {

    "subject": "CAN'T LOGIN", "priority": "high", "department": "technical", "message": "lorem ipsum..."

    }

  • PATCH /tickets/<code>

    To update a ticket with a code=<code>, which in this case the only update that can be done is to close it. Example: {

    "closed": true,

    }

  • GET /replies?ticket=<code>

    To list all the replies/conversations between a customer and a staff for a ticket

  • POST /replies

    To create a reply to a ticket. Example: {

    "ticket": "<code>", "message": "lorem ipsum..."

    }

Note

  • All endpoints require authentication except /users
  • This project was designed to be small so it lacks at of features an actual ticketing system has

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

A tool that would allow a customer to directly reach out to a customer support from within any app via a ticketing system

License:MIT License


Languages

Language:Python 95.3%Language:Makefile 4.7%