Front-end questionnaire related to https://backup.lepisi.ac.id/dbrw/questionnaire
.gitignore | ||
README.md |
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
- PHP 7.0
- nginx
- mariadb
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 Kuesioner
Skenario utama:
- Admin telah login ke dalam sistem
- Admin mengisi form pembuatan kuesioner baru yang terdiri dari
title
,descriptions
,released_at
- sistem menyimpan nilai form yang diisi dan menambahkan data
id
,created_at
,updated_at
dancreator_id
ke dalam database - sistem mengembalikan Admin ke tampilan daftar kuesioner
Ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Mengubah Kuesioner
Skenario utama:
- Admin telah login ke dalam sistem
- Admin mengisi form edit kuesioner yang terdiri dari
title
,descriptions
, danreleased_at
- sistem menyimpan nilai form yang diisi sesuai dengan
id
dari kuesioner yang sedang diedit ke dalam database - sistem mengembalikan Admin ke tampilan daftar kuesioner
Ekstensi:
- 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
- b. tanggal
released_at
telah lewat dari tanggal hari mengubah- sistem menampilkan pesan bahwa tanggal
released_at
tidak dapat diubah lagi
- sistem menampilkan pesan bahwa tanggal
- a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Membuat Seksi
Skenario utama:
- Admin telah login ke dalam sistem dan memilih kuesioner yang akan dibuatkan seksinya
- Admin mengisi form pembuatan seksi baru yang terdiri dari
title
,descriptions
- sistem menyimpan nilai form yang diisi dan menambahkan data
id
,created_at
,updated_at
,questionnaire_id
dancreator_id
ke dalam tablesections
- sistem mengembalikan Admin ke tampilan daftar seksi dari kuesioner yang sedang diedit
Ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Mengubah Seksi
Skenario utama:
- Admin telah login ke dalam sistem dan memilih kuesioner yang akan diedit seksinya
- Admin mengisi form edit seksi yang terdiri dari
title
,descriptions
- sistem menyimpan nilai form yang diisi sesuai dengan
id
dari seksi yang sedang diedit ke dalam database - sistem mengembalikan Admin ke tampilan daftar seksi kuesioner
Ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Membuat Pertanyaan
skenario utama:
- admin telah login ke dalam sistem dan memilih kuesioner dan seksi yang akan dibuatkan pertanyaan
- admin mengisi form pembuatan pertanyaan baru yang terdiri dari
title
,descriptions
,question_type
,text
,number
- sistem menyimpan nilai form yang diisi dan menambahkan data
id
,created_at
,updated_at
,section_id
dancreator_id
ke dalam tablequestions
- sistem mengembalikan admin ke tampilan daftar pertanyaan dari kuesioner dan seksi yang sedang diedit
ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Mengubah Pertanyaan
Skenario utama:
- Admin telah login ke dalam sistem dan memilih kuesioner dan seksi yang akan diedit pertanyaannya
- Admin mengisi form edit pertanyaan yang terdiri dari
title
,descriptions
,question_type
,text
, dannumber
- sistem menyimpan nilai form yang diisi sesuai dengan
id
dari pertanyaan yang sedang diedit ke dalam database - sistem mengembalikan Admin ke tampilan daftar pertanyaan kuesioner
Ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Membuat Pilihan
skenario utama:
- admin telah login ke dalam sistem dan memilih pertanyaan yang akan dibuatkan pilihan
- admin mengisi form pembuatan pilihan baru yang terdiri dari
descriptions
,text
,number
- sistem menyimpan nilai form yang diisi dan menambahkan data
id
,created_at
,updated_at
,questions_id
dancreator_id
ke dalam tablequestion_choices
- sistem mengembalikan admin ke tampilan daftar pilihan dari pertanyaan yang sedang diedit
ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- admin dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Mengubah Pilihan
Skenario utama:
- Admin telah login ke dalam sistem dan memilih pilihan pertanyaan yang akan diedit
- Admin mengisi form edit pilihan yang terdiri dari
title
,descriptions
,question_type
,text
, dannumber
- sistem menyimpan nilai form yang diisi sesuai dengan
id
dari pertanyaan yang sedang diedit ke dalam database - sistem mengembalikan Admin ke tampilan daftar pertanyaan kuesioner
Ekstensi:
- 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
- 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:
- responden memilih kuesioner yang akan diisinya
- responden memilih tombol isi kuesioner
- responden mengisi data diri pada halaman pendaftaran responden yang terdiri
dari
nama
,email
,gender
,handphone
, danoccupation
- responden mengklik tombol simpan
- sistem menyimpan nilai form yang diisi dan menambahkan data
created_at
,updated_at
ke dalam tablerespondents
- responden dibukakan tampilan pengisian kuesioner
ekstensi:
- 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
- a. sistem tidak dapat menyimpan data ke database:
- responden dikembalikan ke halaman pengisian form dan diberi peringatan kesalahan
Mengisi Kuesioner
skenario utama:
- responden telah berhasil mengisi identitas
- sistem menampilkan pertanyaan sekaligus pilihan jawaban jika tersedia kepada responden untuk diisi
- responden mengisi/memilih pilihan jawaban atas pertanyaan yang diberikan lalu mengklik tombol lanjut
- sistem menampilkan pertanyaan selanjutnya dan berulang ke langkah no. 1 hingga semua pertanyaan terisi
ekstensi:
- a. form tidak diisi lengkap:
- sistem memberikan peringatan bahwa tiap pertanyaan wajib diisi dengan lengkap
- responden dapat mencoba mengirim form kembali setelah memperbaiki kesalahan
Menyelesaikan Kuesioner
skenario utama:
- responden telah menjawab seluruh pertanyaan dan berada pada halaman pertanyaan terakhir
- responden menekan tombol simpan jawaban pada pertanyaan terakhir
- sistem menampilkan rekap jawaban responden sekaligus menanyakan konfirmasi pengiriman jawaban
- responden memberikan centang pada pernyataan mengisi dengan data sebenarnya lalu menekan tombol simpan
- sistem menyimpan data jawaban untuk tiap-tiap pertanyaan dan menambahkan
data
id
,respondent_id
,question_id
,created_at
danupdated_at
pada tabelanswers
ekstensi:
- 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
- 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:
- sistem mengirimkan email berupa rekap jawaban responden
ekstensi:
- 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)
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
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