Front-end questionnaire related to https://backup.lepisi.ac.id/dbrw/questionnaire
Go to file
dbrw 8418a77e8c Menambahkan expected_length dan extends
Menambahkan field `expected_length` dan menambahkan extends pada Use
Case diagram. Sehingga requirement membuat Seksi, Pertanyaan dan Pilihan
menjadi lebih eksplisit.
2017-10-30 15:47:13 +07:00
tests/features Menambahkan expected_length dan extends 2017-10-30 15:47:13 +07:00
.gitattributes Adding MembuatKuesioner.feature 2017-09-26 16:41:56 +07:00
.gitignore Adding MembuatKuesioner.feature 2017-09-26 16:41:56 +07:00
README.md Menambahkan expected_length dan extends 2017-10-30 15:47:13 +07:00

Questionnaire

Aplikasi berbasis web untuk publikasi kuesioner pada lingkup Yayasan Widya Anindya (Perguruan Tinggi, SMK dan lainnya).

Latar Belakang

Guna melancarkan akreditasi Perguruan Tinggi LEPISI pada 2018, aplikasi ini dibuat untuk memenuhi kebutuhan akan dokumen-dokumen:

  • instrumen kepuasan mahasiswa terhadap tenaga pengajar & staf perguruan tinggi
  • instrumen evaluasi lulusan
  • monitoring & evaluasi SDM
  • trace studi alumni perguruan tinggi

Kebutuhan Perangkat Lunak

Server Produksi

  • PHP 7.0
  • nginx
  • mariadb

Developmen

  • composer
  • phpunit
  • behat
  • npm

Design

UC Diagram pembuatan kuesioner

left to right direction
actor Admin

Admin -- (Membuat Kuesioner)
Admin -- (Mengubah Kuesioner)
Admin -- (Membuat Seksi)
Admin -- (Mengubah Seksi)
Admin -- (Membuat Pertanyaan)
Admin -- (Mengubah Pertanyaan)
Admin -- (Membuat Pilihan)
Admin -- (Mengubah Pilihan)

(Membuat Seksi) .> (Membuat Kuesioner) : extends
(Membuat Pertanyaan) .> (Membuat Seksi) : extends
(Membuat Pilihan) .> (Membuat Pertanyaan) : extends

Membuat Kuesioner

Skenario utama:

  1. Admin telah login ke dalam sistem
  2. Admin mengisi form pembuatan kuesioner baru yang terdiri dari title, descriptions, released_at
  3. sistem menyimpan nilai form yang diisi dan menambahkan data id, created_at, updated_at dan creator_id ke dalam database
  4. sistem mengembalikan Admin ke tampilan daftar kuesioner

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan kuesioner baru dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Mengubah Kuesioner

Skenario utama:

  1. Admin telah login ke dalam sistem
  2. Admin mengisi form edit kuesioner yang terdiri dari title, descriptions, dan released_at
  3. sistem menyimpan nilai form yang diisi sesuai dengan id dari kuesioner yang sedang diedit ke dalam database
  4. sistem mengembalikan Admin ke tampilan daftar kuesioner

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan kuesioner baru dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. b. tanggal released_at telah lewat dari tanggal hari mengubah
    • sistem menampilkan pesan bahwa tanggal released_at tidak dapat diubah lagi
  3. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Membuat Seksi

Seksi hanya dapat dibuat setelah membuat kuesioner.

Skenario utama:

  1. Admin telah login ke dalam sistem dan memilih kuesioner yang akan dibuatkan seksinya
  2. Admin mengisi form pembuatan seksi baru yang terdiri dari title, descriptions
  3. sistem menyimpan nilai form yang diisi dan menambahkan data id, created_at, updated_at, questionnaire_id dan creator_id ke dalam table sections
  4. sistem mengembalikan Admin ke tampilan daftar seksi dari kuesioner yang sedang diedit

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan seksi baru dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Mengubah Seksi

Skenario utama:

  1. Admin telah login ke dalam sistem dan memilih kuesioner yang akan diedit seksinya
  2. Admin mengisi form edit seksi yang terdiri dari title, descriptions
  3. sistem menyimpan nilai form yang diisi sesuai dengan id dari seksi yang sedang diedit ke dalam database
  4. sistem mengembalikan Admin ke tampilan daftar seksi kuesioner

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form mengubah seksi dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Membuat Pertanyaan

Pertanyaan hanya dapat dibuat setelah membuat seksi. Jadi Pertanyaan ada di dalam seksi dan seksi ada di dalam kuesioner.

skenario utama:

  1. admin telah login ke dalam sistem dan memilih kuesioner dan seksi yang akan dibuatkan pertanyaan
  2. admin mengisi form pembuatan pertanyaan baru yang terdiri dari title, descriptions, question_type, text, number, dan expected_length jika tipe pertanyaan adalah text atau isian
  3. sistem menyimpan nilai form yang diisi dan menambahkan data id, created_at, updated_at, section_id dan creator_id ke dalam table questions
  4. sistem mengembalikan admin ke tampilan daftar pertanyaan dari kuesioner dan seksi yang sedang diedit

ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan seksi baru dan menampilkan pesan kesalahan
    • admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. b. field expected_length muncul jika tipe pertanyaan adalah text
  3. a. sistem tidak dapat menyimpan data ke database:
    • admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Mengubah Pertanyaan

Skenario utama:

  1. Admin telah login ke dalam sistem dan memilih kuesioner dan seksi yang akan diedit pertanyaannya
  2. Admin mengisi form edit pertanyaan yang terdiri dari title, descriptions, question_type, text, dan number
  3. sistem menyimpan nilai form yang diisi sesuai dengan id dari pertanyaan yang sedang diedit ke dalam database
  4. sistem mengembalikan Admin ke tampilan daftar pertanyaan kuesioner

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan pertanyaan baru dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Membuat Pilihan

Pilihan bersifat opsional dan hanya dapat dibuat setelah membuat pertanyaan.

skenario utama:

  1. admin telah login ke dalam sistem dan memilih pertanyaan yang akan dibuatkan pilihan
  2. admin mengisi form pembuatan pilihan baru yang terdiri dari descriptions, text, number
  3. sistem menyimpan nilai form yang diisi dan menambahkan data id, created_at, updated_at, questions_id dan creator_id ke dalam table question_choices
  4. sistem mengembalikan admin ke tampilan daftar pilihan dari pertanyaan yang sedang diedit

ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan pilihan baru dan menampilkan pesan kesalahan
    • admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Mengubah Pilihan

Skenario utama:

  1. Admin telah login ke dalam sistem dan memilih pilihan pertanyaan yang akan diedit
  2. Admin mengisi form edit pilihan yang terdiri dari title, descriptions, question_type, text, dan number
  3. sistem menyimpan nilai form yang diisi sesuai dengan id dari pertanyaan yang sedang diedit ke dalam database
  4. sistem mengembalikan Admin ke tampilan daftar pertanyaan kuesioner

Ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan admin ke halaman form pembuatan pertanyaan baru dan menampilkan pesan kesalahan
    • Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
  2. a. sistem tidak dapat menyimpan data ke database:
    • Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

UC Diagram pengisian kuesioner

left to right direction
actor Responden
actor Admin

Responden -- (Mengisi identitas)
Responden -- (Mengisi kuesioner)
Responden -- (Menyelesaikan kuesioner)
(Menerima notifikasi pengisian) .> (Menyelesaikan kuesioner) : extends
(Mengisi kuesioner) .> (Mengisi identitas) : require
(Menyelesaikan kuesioner) .> (Mengisi kuesioner) : require
(Menerima notifikasi pengisian) -- Admin
Responden -- (Menerima notifikasi pengisian)

Mengisi Identitas

skenario utama:

  1. responden memilih kuesioner yang akan diisinya
  2. responden memilih tombol isi kuesioner
  3. responden mengisi data diri pada halaman pendaftaran responden yang terdiri dari nama, email, gender, handphone, dan occupation
  4. responden mengklik tombol simpan
  5. sistem menyimpan nilai form yang diisi dan menambahkan data created_at, updated_at ke dalam table respondents
  6. responden dibukakan tampilan pengisian kuesioner

ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem mengembalikan responden ke halaman form pendaftaran dan menampilkan pesan kesalahan
    • responden dapat mencoba mengirim form kembali setelah memperbaiki kesalahan
  2. a. sistem tidak dapat menyimpan data ke database:
    • responden dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan

Mengisi Kuesioner

skenario utama:

  1. responden telah berhasil mengisi identitas
  2. sistem menampilkan pertanyaan sekaligus pilihan jawaban jika tersedia kepada responden untuk diisi
  3. responden mengisi/memilih pilihan jawaban atas pertanyaan yang diberikan lalu mengklik tombol lanjut
  4. sistem menampilkan pertanyaan selanjutnya dan berulang ke langkah no. 1 hingga semua pertanyaan terisi

ekstensi:

  1. a. form tidak diisi lengkap:
    • sistem memberikan peringatan bahwa tiap pertanyaan wajib diisi dengan lengkap
    • responden dapat mencoba mengirim form kembali setelah memperbaiki kesalahan
  2. b. panjang jawaban kurang dari yang diharapkan
    • sistem memberikan peringatan bahwa panjang jawaban kurang dari yang diharapkan dan memberitahu berapa panjang jawaban minimal yang diharapkan

Menyelesaikan Kuesioner

skenario utama:

  1. responden telah menjawab seluruh pertanyaan dan berada pada halaman pertanyaan terakhir
  2. responden menekan tombol simpan jawaban pada pertanyaan terakhir
  3. sistem menampilkan rekap jawaban responden sekaligus menanyakan konfirmasi pengiriman jawaban
  4. responden memberikan centang pada pernyataan mengisi dengan data sebenarnya lalu menekan tombol simpan
  5. sistem menyimpan data jawaban untuk tiap-tiap pertanyaan dan menambahkan data id, respondent_id, question_id, created_at dan updated_at pada tabel answers

ekstensi:

  1. a. responden tidak memberikan centang pada pernyataan mengisi dengan data sebenarnya:
    • sistem memberika pesan kesalahan bahwa data yang diisi harus benar dan responden wajib menyetujui pernyataan pada layar
  2. a. sistem tidak dapat menyimpan data ke database:
    • responden dikembalikan ke halaman pengisian kuesioner dan diberi peringatan kesalahan untuk kemudian dapat mencoba mengirim kembali

Menerima Notifikasi Pengisian

skenario utama:

  1. sistem mengirimkan email berupa rekap jawaban responden

ekstensi:

  1. a. sistem gagal mengirim email:
    • sistem menyimpan rekap pada file teks yang kemudian dapat dikirimkan pada responden nantinya

UC Diagram pencetakan laporan kuesioner

left to right direction
actor Admin

Admin -- (Mencetak rekap pengisian kuesioner)
Admin -- (Mencetak laporan hasil pengolahan kuesioner)

Mencetak rekap pengisian kuesioner

skenario utama:

  1. admin telah login lalu memilih kuesioner yang akan dicetak laporannya
  2. sistem mencetak laporan rekap pengisian kuesioner yang isinya akan ditentukan selanjutnya pada layar, jika diperlukan, laporan dapat dicetak pada kertas

ekstensi:

  1. a. belum ada data pengisian kuesioner:
    • sistem tidak menampilkan tombol cetak laporan rekap

Mencetak laporan hasil pengolahan kuesioner

skenario utama:

  1. admin telah login lalu memilih kuesioner yang akan dicetak laporannya
  2. sistem mencetak laporan hasil pengolahan kuesioner yang isinya akan ditentukan selanjutnya pada layar, jika diperlukan, laporan dapat dicetak pada kertas

ekstensi:

  1. a. belum ada data pengisian kuesioner:
    • sistem tidak menampilkan tombol cetak laporan rekap

Class Diagram

class Questionnaire {
    id : int
    title : varchar [100]
    descriptions : text
    creator_id : int
    reviewer_by : int
    released_at : datetime
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

class Section {
    id : int
    questionnaire_id : int
    title : varchar [100]
    descriptions : text
    creator_id : int
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

class Question {
    id : int
    section_id : int
    number : int
    text : varchar [300]
    descriptions : text
    expected_length : int
    question_type : enum ['text', 'choice', 'number']
    creator_id : int
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

class QuestionChoice {
    id : int
    question_id : int
    number : int
    text : varchar [300]
    descriptions : text
    creator_id : int
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

class Respondent {
    id : int
    name : varchar [100]
    handphone : varchar [100]
    email : varchar [100]
    gender : enum ['m', 'f']
    occupation : varchar [100]
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

class Answer {
    id : int
    respondent_id : int 
    question_id: int
    text : text 
    choice : int 
    created_at : datetime
    updated_at : datetime
    deleted_at : datetime
}

Questionnaire "1" -- "1..*" Section
Section "1" -- "1..*" Question
Question "1" -- "0..*" QuestionChoice
Respondent "1" -- "1..*" Answer
Question "1" - "1" Answer

API End Points