Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.65 KB

README.rdoc

File metadata and controls

57 lines (40 loc) · 2.65 KB

Description

Notes about the customer interface

  • Customers do not need to login to submit a query – they simply will need to provide their name and email address along with the department the issue relates to, the subject of their enquiry and the full body of the request.

  • Each new ticket is assigned a unique reference in the format similar to ABC-123456. - When a new ticket is added, the customer should receive an email confirming their request has been received along with their unique reference.

  • It should also include a URL which can be used to view the ticketʼs history and update tickets.

Notes about the management interface

  • Each member of staff should have a username & password used to login to the system - Staff can view a list of all unassigned, open tickets and take ownership. - Staff should be able to reply to the ticket by simply entering their response into a text field. As part of the same action, they should also be able to change the owner or status. - All changes to the status and owner should be tracked with each staff reply. - All replies should be e-mailed to the client.

  • Each ticket should be assigned a status - ʻWaiting for Staff Responseʼ, ʻWaiting for Customerʼ, ʻOn Holdʼ, ʻCancelledʼ or ʻCompletedʼ - further status may wish to be added in the future.

  • When a ticket is first created or updated by the customer, it should be assigned the ʻWaiting for Staff Responseʼ status.

  • The interface should have four main views:

    - New unassigned tickets
    - Open Tickets 
    - On hold tickets 
    - Closed Tickets
  • Staff should be able to quickly open up a new ticket by entering itʼs reference number into a search field. They may also wish to search based on the ticket subject.

Getting Started

Open project’s dir:

cd <project_dir>

Create database.yml file. You can use sqlite3 db (leave database.yml as it is) or change mysql settings:

cp config/database.example.yml config/database.yml

Create development.rb file. I’ve created gmail accout and use it as smtp server. You should provide other smtp settings.

cp config/environments/development.example.rb config/environments/development.rb

Install bundler gem

gem install bundler

Install gems:

bundle install

Run migrations:

rake db:migrate
rake db:seed

Start server:

rails s

Open the following link: 0.0.0.0:3000/admin/login

* Username: [email protected]
* Password: password

Open user’s tab (0.0.0.0:3000/admin/users)

Create as many staff users as you want.

Now you can login into app as a staff user.

Notes:

* You can add new statuses of the ticket, see here: http://0.0.0.0:3000/admin/ticket_statuses
* Developed and tested on Ubuntu 11.04