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.
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