{"id":19848642,"url":"https://github.com/polterguy/tickets","last_synced_at":"2026-03-05T15:32:31.639Z","repository":{"id":38614424,"uuid":"506616350","full_name":"polterguy/tickets","owner":"polterguy","description":"Aista's ticketing system","archived":false,"fork":false,"pushed_at":"2023-12-14T09:49:28.000Z","size":86,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-11T12:47:21.467Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ainiro.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polterguy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-23T11:42:50.000Z","updated_at":"2023-12-20T17:27:05.000Z","dependencies_parsed_at":"2025-01-11T12:45:10.886Z","dependency_job_id":"421a925e-8510-42c8-830e-a4900a4ca717","html_url":"https://github.com/polterguy/tickets","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polterguy%2Ftickets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polterguy%2Ftickets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polterguy%2Ftickets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polterguy%2Ftickets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polterguy","download_url":"https://codeload.github.com/polterguy/tickets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241226818,"owners_count":19930487,"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-11-12T13:17:52.450Z","updated_at":"2026-03-05T15:32:31.601Z","avatar_url":"https://github.com/polterguy.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AINIRO's support and ticket system\n\nThis is [AINIRO](https://ainiro.io)'s ticket system, implying the system we're currently\nactually using ourselves to give customer support and help developers with Magic and Hyperlambda.\nSince we're nice guys and gals though, we've chosen to open source license the thing,\nproviding it as a plugin to your own Magic and Hyperlambda backend, allowing you to install it\nin 5 seconds, through the plugins component in Magic.\n\n## Entities\n\nThe primary database entities of the system is as follows.\n\n* __status__ - Status of ticket\n* __priorities__ - Priority of ticket\n* __departments__ - Department the ticket should be handled by\n* __tickets__ - Actual support request\n* __messages__ - Messages associated with a ticket\n\nThe primary entity above is _\"tickets\"_, which is a single support request, and its status\nis _not_ overridable by the user itself, but only possible to change by an administrator\nin the system. Creating a ticket requires the user to be authenticated as _\"guest\"_.\n\n## Images\n\nA guest user creating tickets and messages can associate images with both his or her tickets and\nmessages. This might be additional helper information images, such as screenshots etc, that\ndescribes the issue the user has. Such files will be saved in the _\"/etc/tickets/xxx/yyy/\"_ folders,\nwhere xxx is either _\"tickets\"_ or _\"messages\"_ depending upon if the image is to be associated\nwith a ticket or a message, and its yyy parts is the id of the ticket or message, prefixed with\n_\"id-\"_. The filenames are kept as is, but only png, jpeg, jpg and gif image extensions are\nallowed in the endpoint. There are two endpoints for uploading images and two endpoints for\ndownloading images, and they are as follows.\n\n* `POST` - _\"images/upload-ticket-file\"_ - Uploads a file and associates it with a ticket\n* `POST` - _\"images/upload-message-file\"_ - Uploads a file and associates it with a message\n* `GET` - _\"images/download-ticket-image\"_ - Downloads an image file associated with a ticket\n* `GET` - _\"images/download-message-image\"_ - Downloads an image file associated with a message\n\nTo list files associated with tickets or messages you can use the following endpoint.\n\n* `GET` - _\"images/list-ticket-files\"_ - Returns a list of all files associated with the ticket\n* `GET` - _\"images/list-message-files\"_ - Returns a list of all files associated with the message\n\n## Administration interface\n\nThe system also features an _\"admin only\"_ part, which are HTTP endpoints that can only\nbe invoked by root or admin users, which are intended for administrators to handle and answer\nsupport requests. You can find these endpoints in the _\"admin\"_ folder. However, admin users\ncan in general invoke all endpoints for non-admin users, with the difference that an admin\nuser is allowed to count, view and edit tickets and messages not belonging to himself. While\na non-admin user can only see and edit tickets that belongs to himself.\n\n## Database support\n\nThe system _only_ supports MySQL and SQLite currently, so if you don't have one of these databases\nas your currently default database, you'll either have to port it, change its code somehow, or avoid\ninstalling it in the first place. We might port the system to PostgreSQL later, but this is not\nsomething we're considering at the moment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolterguy%2Ftickets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolterguy%2Ftickets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolterguy%2Ftickets/lists"}