Open sourced, e-mail driven help desk application
JavaScript Ruby CoffeeScript
Switch branches/tags
Nothing to show
Clone or download
Latest commit 98d2332 Aug 10, 2012
Permalink
Failed to load latest commit information.
app model clean up Jul 1, 2012
config fixes to mongo connection Jul 1, 2012
doc init Jun 13, 2012
lib init Jun 13, 2012
public init Jun 13, 2012
script init Jun 13, 2012
test basic unit tests Jul 1, 2012
vendor init Jun 13, 2012
.gitignore fixes to mongo connection Jul 1, 2012
Gemfile init Jun 13, 2012
Gemfile.lock init Jun 13, 2012
MIT-LICENSE init Jun 13, 2012
README.rdoc readme Aug 10, 2012
Rakefile Rakefile: Update application name Jun 13, 2012
config.ru init Jun 13, 2012

README.rdoc

TicketDesk

TicketDesk is a simple tool to manage support tickets, authored by Alex Blom (@AlexBlom).

TicketDesk is an e-mail driven system. Customers are never exposed to the portal. Instead, a support e-mail is created. TicketDesk receives tickets via a rake task that connects to IMAP. Responses to tickets are e-mailed to clients, and threading is enabled.

TicketDesk is also issue driven. Instead of manually managing 10 tickets with the same problem/solution, create an 'Issue'. You can then focus your time on solving the issue at hand, and batch e-mail updates / close tickets with the same issue.

TicketDesk was built as an internal tool, so is rigged for my needs and use case. I'd encourage you to share the customizations made along the way.

DEMO: [taken offline, unless somebody has a place I can host it]

Screen Shots:

Ticket Home Screen:

Searching tickets in-line:

Tickets can have issues, responses, etc:

Focus on issues involving multiple tickets, vs. single tickets:

Join / Follow

Mailing List / Google Group: groups.google.com/forum/#!forum/ticketdesk

Twitter: www.twitter.com/AlexBlom

Blog: www.alexblom.com

Installation / Configuration

  1. The Gemfile has been pre-loaded with the tools I use (i.e. MongoMapper). Be sure to run bundle/install once downloaded.

  2. In environment.rb, add your Sendgrid settings. TicketDesk has no further Sendgrid dependencies, so you can change to the native / another mailer.

  3. TicketDesk has been built to work on Mongo. Be sure to install and then modify your mongo settings in config/mongo.yml

  4. While this was built as an internal app, there is an accounts system in place. When the Rails Server is booted, you will be re-directed to create a new account and the first support user. All users / tickets will belong to this account.

  5. Once the account is created, update the record via your preferred tool to include the required IMAP details (you will find these listed in the model).

  6. TicketDesk runs a delayed job for all mailers. I've included Collective Idea's version of Delayed Job, originally authored by Tobi of Shopify. I run Delayed Job via a background Daemon. You can find further info on running the Delayed Job at: github.com/collectiveidea/delayed_job

  7. The IMAP checker (to get new support tickets) is a rake task (tasks/email_fetch.rake). You should set up a cron to run rake get_emails.

  8. By default, TicketDesk expects pre-compiled assets. If you are using Capistrano to deploy, you can automate this. Else, be sure to run “bundle exec rake assets:precompile”

Extensions / Contributing

Please do extend TicketDesk! If you are looking for ideas, I've been meaning to build the following addons:

  1. Stronger Gmail integration (use Gmail v. SendGrid, use Google authentication on the IMAP read for security)

  2. Adding new Users & IMAP details is currently a manual process. This should not be the case.

  3. Improved tests

If you want to contribute an enhancement or a fix:

  1. Fork the project on github.

  2. Make your changes with tests.

  3. Send a pull request.

Most recent updates

  • Changes to Navigation Links

  • Addition of Unit Tests to the public repo (functional will also be added)

  • Changes to Mongo Connections

Contributors

Big thanks thus-far to Terry Smith (twitter.com/terryjsmith) and Aidan Nulman (twitter.com/anulman) for contributing & supporting.