Fajri Abdillah

Manajemen Helpdesk PTKDIKMEN

This project is for complaint about data at Ministry of Education Division of Educator, this application is use widely in Indonesia. Target User about 100K Users, where 1 User == 1 School.

For this project, We use 1 virtual servers.

This project has 4 Role :
1) Admin of Ministry
2) Province User
3) Cities User
4) School User

The ticketing system is tiered. So School can only send ticket to Cities. Cities can send tickets to Province, and Province can send ticket to Admin of Ministry.

Forwarding system also tiered, Cities can forward to Province. Province can forward to Admin of Ministry. And Admin of Ministry can forward to their fellows.

Every ticket, can has attachment, up to size 5Mb. Extension for upload can be set too. And, every activities, make ticket status changed into, open, answered, forward, and close. User interface built to easiest operation, and truly straight forward.


  • Tiered Ticket System

    This can be tricky, especially when add a new role

  • Multi User and Multi Role

    This project has so many user, because this application targeted into 100K users all of Indonesia School. And it has 4 Role.

  • Auto close ticket

    When status ticket is answered, the ticket will be autoclose within 7 days (can be set)
    I use redis, via laravel queue daemon

  • Auto Assign Ticket

    When ticket sent, it must be somebody to take care about the ticket, what happened when someone has too much ticket to handle?
    This feature must be available. But this feature will be available within next month (Aug 2015)

  • Acceptance Testing

    I use codeception with webdriver to make this done


2015 - 2016 Jul


  1. Nginx 1.6.2 & PHP-FPM 5.6
  2. MariaDB 10.0.14 / TokuDB 7.5
  3. Redis 2.8
  4. Laravel 4.2
  5. AdminLTE
  6. Codeception 2




Single Ticket


Manajemen Helpdesk PTK DIKMEN

Lesson learned

Building multi user and multi role application is a little hard, especially when do automated testing. Even this project just a reimplementation, every client has different point of view, so much hacking the code.