Skip to content
Maattt GoobyFRS edited this page Feb 6, 2025 · 7 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 five minutes via graceful login and logout process.

The dashboard displays Open or In-Progress tickets.

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 4x HTML pages look "correct".
  • Index, Login, Dashboard, Ticket Commander
  1. Protected pages cannot be loaded without the session cookie
  2. Console is not logging HTTP errors

How to Contribute

No expectations are defined yet.

KNOWN LIMITATIONS AND CAVEATS

  • HTML Form does not perform GOOD input validation
  • Replies appending to notes can get long-winded as the thread gets larger.
  • The employee login cannot contain certain but unknown characters. "-" seems to cause issues.
  • 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.