Fajri Abdillah

SIM Layanan Pengaduan P2TK DIKDAS

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 3 virtual servers. Each server has 3 Virtual Core, 8Gb Ram and CentOS 6.6. We use separate process on separate server.

Server List :
1) Nginx + PHP-FPM
2) MariaDB, Redis
3) MariaDB, Java, Openfire XMPP, Nginx,

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.

Last but not least, this project has chat system, I use XMPP, exactly Openfire. And for the frontend I use Candy Chat


  • 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


2014 - 2016 Jul


  1. Nginx 1.6.2 & PHP-FPM 5.5
  2. MariaDB 10.0.14 / TokuDB 7.5
  3. Redis 2.8
  4. Openfire XMPP
  5. Laravel 4.2
  6. Twitter Bootstrap 3
  7. Codeception 2



Single Ticket

Ticket List



SIM Layanan Pengaduan P2TK DIKDAS

Lesson learned

Building multi user and multi role application is a little hard, especially when do automated testing.