A simple ticketing application written in Python/Django
CSS Python HTML JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
main
screenshots
static
tickets
.gitignore
LICENSE
README.md
manage.py
requirements.txt

README.md

A simple ticketing application

django-tickets is a simple MIT-licensed ticketing application written in Python/Django. Some of the features are:

  • creation of new tickets via web interface or via email
  • followups on tickets
  • file attachments for tickets
  • assign tickets to users
  • email notifications for new assignments, followups and closed tickets

The application was written to serve my special needs. It is not intended to grow up to a kitchen sink. But I will add some features in the future. Feel free to use and modify it, if it is interesting for you.

What does it look like?

django-tickets uses a simple Bootstrap template. Nothing fancy.

Landing Page My tickets

Installation

Sensitive and installation dependent information is expected in environment variables. You can use a bash script like this one:

#!/usr/bin/env bash

export DJANGO_SECRET_KEY="xxx"
export DJANGO_PRODUCTION_DOMAIN="xxx"

# log file
export DJANGO_LOG_FILE="xxx"

# static and media files dir in production
export DJANGO_STATIC_ROOT="static_root/"
export DJANGO_MEDIA_ROOT="xxx"

# User who gets django's email notifications (ADMINS/MANAGERS), see settings.py
export DJANGO_ADMIN_NAME="xxx"
export DJANGO_ADMIN_EMAIL="xxx"

# Django email configuration
export DJANGO_EMAIL_HOST="xxx"
export DJANGO_EMAIL_HOST_USER="xxx"
export DJANGO_EMAIL_HOST_PASSWORD="xxx"

# ticket email inbox, see 'main/management/commands/get_email.py'
export DJANGO_TICKET_INBOX_SERVER="xxx"
export DJANGO_TICKET_INBOX_USER="xxx"
export DJANGO_TICKET_INBOX_PASSWORD="xxx"

# email notifications to admin, see 'main/management/commands/get_email.py'
export DJANGO_TICKET_EMAIL_NOTIFICATIONS_FROM="xxx"
export DJANGO_TICKET_EMAIL_NOTIFICATIONS_TO="xxx"

Please note that django-tickets is not packaged as a reusable django app; it's a complete django project. So just clone the repository and install the dependencies via pip and the application including user authentication is ready to go.

$ git clone https://github.com/suenkler/django-tickets.git
$ cd django-tickets
$ pip install -r requirements.txt
$ source env.sh
$ ./manage.py migrate
$ ./manage.py collectstatic
$ ./manage.py createsuperuser
$ ./manage.py runserver

To check the IMAP account for new messages and create tickets out of these messages, use the management command get_email:

$ ./manage.py get_email