questionnaire/README.md
2017-09-11 16:48:53 +07:00

165 lines
3.5 KiB
Markdown

# 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
### Use Case Diagram
#### UC Diagram pembuatan kuesioner
```plantuml
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:
1. Admin 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:
2. a. form tidak diisi semuanya:
- sistem mengembalikan admin ke halaman form pembuatan kuesioner baru dan
menampilkan pesan kesalahan
- Admin dapat mencoba mengirim form kembali setelah mengisi dengan lengkap
3. a. sistem tidak dapat menyimpan data ke database:
- Admin dikembalikan ke halaman pengisian form dan diberi peringatan
kesalahan
#### UC Diagram pengisian kuesioner
```plantuml
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
```plantuml
left to right direction
actor Admin
Admin -- (Mencetak rekap pengisian kuesioner)
Admin -- (Mencetak laporan hasil pengolahan kuesioner)
```
### Class Diagram
```plantuml
class Questionnaire {
id : int
title : varchar (100)
descriptions : text
creator_id : 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
```