Skip to content

aottr/paw

Repository files navigation

paw - Ticket System

License Python Version Buy Me a Coffee at ko-fi.com

🚀 paw is a comprehensive and open source ticket management system designed to streamline issue tracking and resolution processes for organizations. It provides a centralized platform for users to submit, track, and manage tickets or requests, facilitating efficient communication and collaboration among team members.

Features

  • Ticket Creation and Submission: Users can create and submit tickets with detailed information about the issue, including title, description, priority, and category and file attachments.

  • Ticket Assignment and Ownership: Tickets can be assigned to specific individuals or teams responsible for resolution, allowing for clear ownership and accountability.

  • Communication and Collaboration: Threaded communication enables seamless collaboration among team members, with the ability to add (internal) comments, attachments, and updates to tickets.

  • Security and Access Control: Secure user authentication, access controls, and audit trails ensure data privacy and compliance with organizational policies and regulations. You can create teams and restrict access of ticket categories to them.

Installation

As a Developer

  1. Clone the repository:
git clone https://github.com/aottr/paw.git
  1. Install dependencies:
poetry install
  1. Configure settings: Copy example.env to .env and update the configuration variables as needed.

  2. Run migrations:

poetry run python manage.py migrate
  1. Start the development server:
poetry run python manage.py runserver

Docker / OCI Container

The Project contains a Dockerfile that can be built locally or in a pipeline. I also provide the latest state of the main branch as an image

Compose

  1. Create a compose file, e.g. docker-compose.yml
version: '3.8'
services:
  paw:
    image: ghcr.io/aottr/paw:latest
    container_name: paw-ticket-system
    command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    restart: unless-stopped
    ports:
    - "127.0.0.1:8000:8000"
    env_file:
    - .env
  1. Run the container with compose
docker compose up -d
  1. Migrate the database (optional, recommended)
docker compose exec paw python manage.py migrate
  1. Collect static files (optional, recommended)
docker compose exec paw python manage.py collectstatic --no-input

Usage

  • Access the application through http://localhost:8000.
  • Register an account or log in with existing credentials.
  • Start creating and managing tickets based on your role and permissions.

Sending Mails

If not configured, mails get sent to the console stdout. This is (mainly) for use in dev environments. SMTP can be used by setting the MAIL_SERVER variable to smtp.

To also assign a display name when sending mails, adjust the EMAIL_FROM variable in the following format:

EMAIL_FROM='Don't Reply <do_not_reply@domain.example>'

Contributing

🙌 Contributions are welcome! Please follow the guidelines.

License

This project is licensed under the MIT License.