Skip to content
Maattt GoobyFRS edited this page Jan 20, 2025 · 8 revisions

Welcome to the GoobyDesk Documentation Wiki on GitHub.

GoobyDesk is a simple, lightweight, databaseless service desk for Home Labbers, Families, and very Small Businesses.

It features a homepage, a login page, and a dashboard. On the homepage (index.html) external users can submit a ticket. When a user submits a ticket, it's content is written to the local tickets.json file.

Once the ticket has been written, an email containing the ticket-id and original ticket are sent to the end user provided email. The email is sent from the email box defined in the .env file.

There is a background thread defined in the code that monitors the inbox for incoming replies. If a reply is detected, it is scraped and put into the notes variable in the tickets.json file. This occurs every two minutes via graceful login and logout.

The dashboard only displays open tickets. Currently no filtering option for both open and closed.

Code Standards

Use as few dependencies as possible. When multiple package options are available; use the one with the best documentation.

Update CHANGELOG when pushing code/function changes.

When making code changes, ensure the following features work as designed....

  1. User tickets generate email threads.
  2. Technician can login to the dashboard.
  3. Email replies append to the notes of the tickets.json file.
  4. Closed tickets are hidden from the Dashboard but remain in the tickets.json file.
  5. Technician can successfully logout.
  6. All 3x HTML pages look "correct".

How to Contribute

No expectations are defined yet.

KNOWN LIMITATIONS AND CAVEATS

  • HTML Form does not perform input validation
  • Replies appending to notes can get long-winded as the thread gets larger
  • The tickets.json file does not have a locking mechanism which could eventually result in data corruption
  • The system only supports one employee
  • The employee login cannot contain certain but unknown characters. "-" seems to cause issues.
  • Tickets must be manually closed. There is no automation/button/script yet.
  • The code can be fragile to changes
  • There is no visible error message when technician login fails
  • There is no visible confirmation when a ticket has been submitted.
  • Cookies on the client can cause issues following a code update and application reload.
Clone this wiki locally