{"id":17035014,"url":"https://github.com/justquick/jutdahelpdesk","last_synced_at":"2025-04-12T13:13:35.540Z","repository":{"id":830801,"uuid":"547984","full_name":"justquick/jutdahelpdesk","owner":"justquick","description":"My dev fork of the jutda helpdesk","archived":false,"fork":false,"pushed_at":"2010-03-05T05:34:21.000Z","size":300,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T13:13:32.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.jutdahelpdesk.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"martinciu/pickle-mongoid","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justquick.png","metadata":{"files":{"readme":"README","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-03-05T05:31:52.000Z","updated_at":"2024-07-20T14:44:26.000Z","dependencies_parsed_at":"2022-08-16T11:05:11.639Z","dependency_job_id":null,"html_url":"https://github.com/justquick/jutdahelpdesk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justquick%2Fjutdahelpdesk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justquick%2Fjutdahelpdesk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justquick%2Fjutdahelpdesk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justquick%2Fjutdahelpdesk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justquick","download_url":"https://codeload.github.com/justquick/jutdahelpdesk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248571863,"owners_count":21126522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T08:45:17.197Z","updated_at":"2025-04-12T13:13:35.520Z","avatar_url":"https://github.com/justquick.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Jutda Helpdesk - A Django powered ticket tracker for small enterprise.\n\n(c) Copyright 2009 Jutda. All Rights Reserved. See LICENSE for details.\n\n#########################\n0. Table of Contents\n#########################\n\n1. Licensing\n2. Dependencies (pre-flight checklist)\n3. Upgrading from previous versions\n4. Installation\n5. Initial Configuration\n6. Spam filtering\n7. API Usage\n8. Thank You\n\n#########################\n1. Licensing\n#########################\n\nSee the file 'LICENSE' for licensing terms. Note that Jutda Helpdesk is \ndistributed with 3rd party products which have their own licenses. See \nLICENSE.3RDPARTY for license terms for included packages.\n\n#########################\n2. Dependencies (pre-flight checklist)\n#########################\n1. Python 2.3+ \n\n2. Django (1.0 alpha 1 or newer, or an SVN checkout after 7941).\n\n3. An existing WORKING Django project with database etc. If you\n   cannot log into the Admin, you won't get this product working.\n\nNOTE REGARDING SQLITE AND SEARCHING:\nIf you use sqlite as your database, the search function will not work as\neffectively as it will with other databases due to its inability to do\ncase-insensitive searches. It's recommended that you use PostgreSQL or MySQL\nif possible. For more information, see this note in the Django documentation:\nhttp://docs.djangoproject.com/en/dev/ref/databases/#sqlite-string-matching\n\nWhen you try to do a keyword search using sqlite, a message will be displayed\nto alert you to this shortcoming. There is no way around it, sorry.\n\n#########################\n3. Upgrading from previous versions\n#########################\n\nIf you are upgrading from a previous version of Jutda Helpdesk, you should \nread the UPGRADING file to learn what changes you will need to make to get \nthe current version of Jutda Helpdesk working.\n\n1. Find out your current version of Jutda Helpdesk. In the 'helpdesk' folder,\n   use the 'svn' command to find the current revision:\n\n    svn info .\n\n   Look for the 'Revision' line, eg:\n\n    Revision: 92\n\n2. Read through the UPGRADE file, looking for any changse made _after_ that \n   revision. Apply the commands provided in order from oldest to most recent.\n\n3. Restart your web server software (eg Apache) or FastCGI instance, to ensure\n   the latest changes are in use.\n\n4. Continue to the 'Initial Configuration' area, if needed.\n\n#########################\n4. Installation\n#########################\n\n1. Place 'helpdesk' in your Python path. I use /var/django, others may use \n   /usr/lib/python2.3/site-packages/ or a similar path.\n\n2. In your projects' settings.py file, add these lines to the INSTALLED_APPS\n   setting:\n   'helpdesk',\n   'django.contrib.admin',\n\n3. In your projects' urls.py file, add this line:\n    (r'helpdesk/', include('helpdesk.urls')),\n\n    You can substitute 'helpdesk/' for something else, eg 'support/' or even ''.\n\n4. Ensure the admin line is un-hashed in urls.py:\n    # Uncomment this for admin:\n    from django.contrib import admin\n    admin.autodiscover()\n    (r'^admin/(.*)', admin.site.root),\n\n    If you use helpdesk at the top of your domain (at /), ensure the admin \n    line comes BEFORE the helpdesk line.\n\n5. In your project directory (NOT the helpdesk directory) run \n    ./manage.py syncdb\n   to create database tables\n\n6. Inside your MEDIA_ROOT folder, create a new folder called 'helpdesk' and \n   copy the contents of helpdesk/htdocs/ into it. Alternatively, create a\n   symlink:\n    ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk\n\n   This application assumes all helpdesk media will be accessible at\n   http://MEDIA_URL/helpdesk/\n\n7. Inside your MEDIA_ROOT folder, inside the 'helpdesk' folder, is a folder \n   called 'attachments'. Ensure your web server software can write to this \n   folder - something like this should do the trick:\n\n    chown www-data:www-data attachments/; chmod 700 attachments\n     (substitute www-data for the user / group that your web server runs\n      as, eg 'apache' or 'httpd')\n\n   If all else fails ensure all users can write to it:\n\n    chmod 777 attachments/\n\n   This is NOT recommended, especially if you're on a shared server.\n\n8. Ensure that your 'attachments' folder has directory listings turned off, \n   to ensure users don't download files that they are not specifically linked \n   to from their tickets.\n\n   If you are using Apache, put a .htaccess file in the 'attachments' folder \n   with the following content:\n\n    Options -Indexes\n\n   You will also have to make sure that .htaccess files aren't being ignored.\n\n   Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a \n   403 access denied error.\n\n#########################\n5. Initial Configuration\n#########################\n\n1. Visit http://yoursite/admin/ and add a Helpdesk Queue. If you wish, \n   enter your POP3 or IMAP server details. \n\n   IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE\n   the original e-mail from the mail server.\n\n2. Visit http://yoursite/helpdesk/ (or other path as defined in your urls.py) \n\n3. If you wish to automatically create tickets from the contents of an e-mail \n   inbox, set up a cronjob to run scripts/get_email.py on a regular basis. \n\n   Don't forget to set the relevant Django environment variables in your \n   crontab:\n\n   */5 * * * * /path/to/helpdesksite/manage.py get_email\n\n   This will run the e-mail import every 5 minutes\n\n   IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE\n   the original e-mail from the mail server.\n\n4. If you wish to automatically escalate tickets based on their age, set up \n   a cronjob to run scripts/escalate_tickets.py on a regular basis:\n   \n   0 * * * * /path/to/helpdesksite/manage.py escalate_tickets\n   \n   This will run the escalation process hourly, using the 'Escalation Hours' \n   setting for each queue to determine which tickets to escalate.\n\n5. If you wish to exclude some days (eg, weekends) from escalation calculations, enter \n   the dates manually via the Admin, or setup a cronjob to run \n   scripts/create_escalation_exclusions on a regular basis:\n\n   0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions.py --days saturday,sunday --escalate-verbosely\n\n   This will, on a weekly basis, create exclusions for the coming weekend.\n\n6. Log in to your Django admin screen, and go to the 'Sites' module. If the \n   site 'example.com' is listed, click it and update the details so they are \n   relevant for your website.\n\n7. If you do not send mail directly from your web server (eg, you need to \n   use an SMTP server) then edit your settings.py file so it contains your \n   mail server details:\n\n   EMAIL_HOST = 'XXXXX'\n   EMAIL_HOST_USER = 'YYYYYY@ZZZZ.PPP'\n   EMAIL_HOST_PASSWORD = '123456'\n\nYou're now up and running!\n\n#########################\n7. Spam filtering\n#########################\n\nJutda Helpdesk includes a copy of `akismet.py' by Michael Foord, which lets\nincoming ticket submissions be automatically checked against either the \nAkismet or TypePad Anti-Spam services.\n\nTo enable this functionality, sign up for an API key with one of the following\nserviceS:\n\nAkismet: http://akismet.com/\nSave your API key in settings.py as AKISMET_API_KEY\nNote: Akismet is only free for personal use. Paid commercial accounts are \navailable.\n\nTypePad AntiSpam: http://antispam.typepad.com/\nSave your API key in settings.py as TYPEPAD_ANTISPAM_API_KEY\nThis service is free to use, within their terms and conditions.\n\nIf you have either of these settings enabled, the spam filtering will be \ndone automatically. If you have *both* settings configured, TypePad will \nbe used instead of Akismet.\n\nExample configuration in settings.py:\n\nTYPEPAD_ANTISPAM_API_KEY = 'abc123'\n\n#########################\n7. API Usage\n#########################\n\nJutda Helpdesk includes an API accessible via HTTP POST requests, allowing\nyou to create and alter tickets from 3rd party software and systems.\n\nFor usage instructions and command syntax, see the file\ntemplates/helpdesk/api_help.html, or visit http://helpdesk/api/help/.\n\n#########################\n8. Thank You\n#########################\n\nWhile this started as a project to suit my own needs, since publishing the\ncode a number of people have made some fantastic improvements and provided\nbug fixes and updates as the Django codebase has moved on and caused small\nportions of this application to break.\n\nTo these people, my sincere thanks:\n\nDavid Clymer \u003chttp://djangopeople.net/vezult/\u003e\nChris Etcp\nNikolay Panov\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustquick%2Fjutdahelpdesk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustquick%2Fjutdahelpdesk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustquick%2Fjutdahelpdesk/lists"}