-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathone-to-one
55 lines (43 loc) · 3.08 KB
/
one-to-one
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
/** EXPRESS WITH SQLITE3 - ONE TO ONE
---------------------------
Buatlah sebuah aplikasi sederhana menggunakan Express JS dan SQLITE3 untuk
menampilkan list User & Profile, menambah data User & Profile,
melakukan edit data dan delete data berdasarkan data yang dipilih dengan relasi User one to one dengan Profile.
- Release 0
1. Buatlah file dengan nama setup.js yang akan dijalankan pertama kali untuk membuat
table pada database. Tentukan column mana saja yang akan di set unique.
2. Berikan validasi di query create table sehingga meskipun setup dijalankan berulang
kali, tidak error
Structure table:
* Users: id type integer, username type string, firstname type string, lastname type string, email type string
* Profiles: id type integer, hometown type string, birth_year type integer, relationship_status
* tambahkan foreign key yang diperlukan!
Jalankan dengan : node setup.js, kemudian lihat ke database apakah table Users dan Profiles sudah terbuat.
- Release 1 - CRUD Contacts
1. Buat sebuah aplikasi express yang baru, kemudian tambahkan beberapa routes yang respon nya me-render view(ejs) dengan keterangan sbb:
----------------------------------------------------------------------
METHOD | ROUTE | KETERANGAN
----------------------------------------------------------------------
GET | / | Menampilkan link Contacts, Profiles
GET | /contacts | Menampilkan semua data contacts
POST | /contacts | Menerima data dari form untuk input contacts
GET | /contacts/edit/:id | Menampilkan data dari contact tertentu untuk diubah
POST | /contacts/edit/:id | Menerima data form untuk update contact
GET | /contacts/delete/:id | Menghapus data contact berdasarkan id
Ketika edit, data contact harus di populate ke masing-masing input form nya.
- Release 2 - CRUD Profile
1. Lanjutkan release 1, tambahkan beberapa routes yang respon nya me-render view(ejs) dengan keterangan sbb:
----------------------------------------------------------------------
METHOD | ROUTE | KETERANGAN
----------------------------------------------------------------------
GET | /profiles | Menampilkan semua data profiles
POST | /profiles | Menerima data dari form untuk input profiles
GET | /profiles/edit/:id | Menampilkan data dari profiles tertentu untuk diubah
POST | /profiles/edit/:id | Menerima data form untuk update profiles
GET | /profiles/delete/:id | Menghapus data profiles berdasarkan id
Input fields untuk contacts id nya harus dalam bentuk drop down yang menampilkan username nya.
Ketika edit, data profile harus di populate ke masing-masing input form nya, termasuk selected drop down nya, dan saat ini contact_id tidak boleh dirubah.
Karena User one to one dengan Profile, maka 1 Contact hanya boleh memiliki 1 Profile. Tambahkan validasi ketika create Profile, Contact yang sudah memiliki Profile tidak dapat ditambah lagi.
- Release 3 (Optional) -
Tambahkan validasi pada form Contact, username tidak boleh kosong. Tambahkan validasi pada form Profile, hometown tidak boleh kosong.