(C) 2019 - 2023 by Daniel Brendel
Version: 1.0
Contact: dbrendel1988(at)gmail(dot)com
GitHub: https://github.com/danielbrendel
Released under the MIT license
HelpRealm is a lightweight SaaS service support system for customers of entities. Customers can create support requests via a personal workspace contact form, specifying text content and attachments, or via E-Mail. For each support request there is a ticket created which is then handled by a registered agent. Tickets can be routed into different groups where initial tickets are routed to a defined index group. Superadmins can manage agents, groups, FAQ and system settings. Customers and agents get notified about ticket events by e-mail. Communication is possible via e-mail or a secret ticket thread form. There is also the possibility to create tickets via API. The support system is especially suitable for freelancers and small teams.
- Tickets
- Create tickets
- List tickets
- Manage tickets
- Different types and priorities
- Different ticket status
- Ticket notes
- Ticket attachments
- Groups
- Manage groups
- Route tickets through groups
- Agents
- Manage agents
- Manage superadmins
- Customer infos
- Dashboard
- FAQ
- Multi-language
- Login management
- Gravatar support
- E-Mail notifications
- E-Mail replies
- E-Mail tickets
- Friendly installer
- Security (Protection against XSS, SQL Injection, CSRF, Spam)
- Responsive layout
- SaaS solution
- API Endpoint
- Endpoint for client apps
- Stripe payment
- Ajax requests
- Documentation
The documentation is located in the /doc directory. A generated PDF needs to be put to /public/data/documentation.pdf
The product is being developed with the following engine versions:
- PHP ^7.4|^8.0
- MySQL 10.4.11-MariaDB
- Default PHP extensions
Before running tests the .env.testing must be adjusted to match the test data of the database. Therefore the DATA_* environment variables must be adjusted. Then open the command prompt, go to the project root and run PHPUnit. The following variables must be adjusted:
- DATA_USERID: ID of a test user
- DATA_WORKSPACE: ID of a test workspace
- DATA_WORKSPACENAME: Namehash of that workspace
- DATA_WORKSPACEAPITOKEN: API token for the API endpoint
- DATA_GROUPID: ID of a test group
- DATA_GROUPNAME: Name of the test group
- DATA_TICKETID: Ticket ID of a test ticket
- DATA_TICKETHASH: Ticket hash of that test ticket
- DATA_TICKETSUBJECT: Ticket subject of that test ticket
- DATA_TICKETTEXT: Ticket text of that test ticket
- DATA_TICKETFILE: ID of a ticket file
- DATA_USEREMAIL: E-Mail address of a test user
- DATA_USERPW: Password of that test user
- DATA_FAQID: ID of a workspace FAQ item
- DATA_INIFILESIZE: Byte size of upload_max_filesize in php.ini
- DATA_TICKETTYPEEXISTING: ID of an existing ticket type
- DATA_TICKETTYPEEXISTINGNAME: Name of the existing ticket type
- DATA_TICKETTYPENONEXISTING: ID of a non-existing ticket type
Agents and customers can post to a ticket thread by replying to the notification emails. In order for this to work the environment variables MAILSERV_* must be set. Also a cronjob must be activated on the server system which calls /mailservice/{what}/{password} (any request type). 'what' refers to either 'self' (to handle the mailbox associated with the host support) or 'custom' (to handle all custom mailboxes of workspaces that use a custom mailbox). The password must match the one specified in the MAILSERV_CRONPW variable.
By setting the TWITTER_* environment variables to the news account it will fetch tweets from the Twitter timeline.