# paw - Ticket System [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3120/) 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: ```bash git clone https://github.com/aottr/paw.git ``` 2. Install dependencies: ```bash poetry install ``` 3. Configure settings: Copy `example.env` to `.env` and update the configuration variables as needed. 4. Run migrations: ```bash poetry run python manage.py migrate ``` 5. Start the development server: ```bash poetry run python manage.py runserver ``` ### Docker / OCI Container The Project contains a [Dockerfile](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` ```bash 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 ``` 2. Run the container with compose ```bash docker compose up -d ``` 3. Migrate the database (optional, recommended) ```bash docker compose exec paw python manage.py migrate ``` 4. Collect static files (optional, recommended) ```bash 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 ' ``` ## Contributing 🙌 Contributions are welcome! Please follow the [guidelines](CONTRIBUTING.md). ## License This project is licensed under the [MIT License](LICENSE).