adding use case description for pengisian kuesioner

This commit is contained in:
dbrw 2017-09-15 16:25:20 +07:00
parent 0e3456cdc6
commit 668f87d887

130
README.md
View File

@ -7,14 +7,16 @@ Anindya (Perguruan Tinggi, SMK dan lainnya).
Guna melancarkan akreditasi Perguruan Tinggi LEPISI pada 2018, aplikasi ini
dibuat untuk memenuhi kebutuhan akan dokumen-dokumen:
- dokumen #1
- dokumen #2
- ...
- 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
@ -225,9 +227,93 @@ 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:
3. 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
5. 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:
3. 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:
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:
4. 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
5. 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
```plantuml
@ -243,7 +329,7 @@ Admin -- (Mencetak laporan hasil pengolahan kuesioner)
```plantuml
class Questionnaire {
id : int
title : varchar (100)
title : varchar [100]
descriptions : text
creator_id : int
reviewer_by : int
@ -256,7 +342,7 @@ class Questionnaire {
class Section {
id : int
questionnaire_id : int
title : varchar (100)
title : varchar [100]
descriptions : text
creator_id : int
created_at : datetime
@ -268,9 +354,9 @@ class Question {
id : int
section_id : int
number : int
text : varchar (300)
text : varchar [300]
descriptions : text
question_type : enum ('text', 'choice', 'number')
question_type : enum ['text', 'choice', 'number']
creator_id : int
created_at : datetime
updated_at : datetime
@ -281,7 +367,7 @@ class QuestionChoice {
id : int
question_id : int
number : int
text : varchar (300)
text : varchar [300]
descriptions : text
creator_id : int
created_at : datetime
@ -291,12 +377,11 @@ class QuestionChoice {
class Respondent {
id : int
login : varchar (100)
name : varchar (100)
handphone : varchar (100)
email : varchar (100)
gender : enum ('m', 'f')
descriptions : text
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
@ -320,20 +405,3 @@ Respondent "1" -- "1..*" Answer
Question "1" - "1" Answer
```
### ER Diagram
```dot
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;
}
```