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:
- dokumen #1
- dokumen #2
- ...
Kebutuhan Perangkat Lunak
- PHP 7.0
- nginx
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
(Menerima notifikasi pengisian) -- Admin
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
login : varchar (100)
name : varchar (100)
handphone : varchar (100)
email : varchar (100)
gender : enum ('m', 'f')
descriptions : text
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
ER Diagram
diagraph ER {
node [shape=box]; questionnaires; sections; questions; respondents;
answers;
node [shape=diamond,style=filled]; question_answers;
questionnnaires -- sections;
sections -- questions;
questions -- questions_answers;
questions -- answers;
answers -- respondent;
}