Anda di halaman 1dari 7

Employee Application

Learning Competencies
● Memahami Konsep Object Relational Mapping ( ORM )
● Mampu membuat database & Model pada Sequelize
● Dapat memahami dan mengimplementasikan Migration & Seeding
● Dapat memahami dan mengimplementasikan Create, Read, Update, Delete
kepada database menggunakan Sequelize

Summary
Employee App merupakan sebuah aplikasi CMS (Content Management System) yang
mana dapat menampilkan informasi mengenai daftar karyawan suatu perusahaan.
Informasi yang ditampilkan antara lain name, position, education, email, phone number
dari setiap karyawan. User admin dapat melakukan Create, Read, Update, Delete
terhadap data yang tersedia.

Release 0 - ERD & Seeding


● Buatlah ERD dari requirement ini dengan nama Table Employees dengan field
dibawah ini

Table Employees

Field Datatype

id SERIAL

name VARCHAR

position VARCHAR

education VARCHAR

email VARCHAR

phone_number VARCHAR

profile_picture VARCHAR
● Buatlah database menggunakan sequelize dengan nama employee_db
● Kemudian buatlah tabel menggunakan sequelize dengan sesuai dengan
requirement diatas
● Setelah membuat Tabel kalian diminta untuk melakukan Seeding melalui
Sequelize. Data yang akan kalian Seeding adalah data employees.json yang
disediakan terhadap Tabel Employee. ( Manfaatkan built in function Javascript
Looping untuk menambahkan key createdAt & updatedAt)

Release 1 - Migration
Asumsikan kita telah membuat tabel dengan requirement diatas.

Dikarenakan adanya tambahan requirement maka kalian diminta untuk menambahkan


column age bertipe data Integer dengan menggunakan Migration Sequelize column
tersebut akan dimasukan ke tabel Employee yang sebelumnya kalian sudah buat.
(Create New Migration)

Route
Pada challenge kali ini, kita akan menggunakan beberapa route sebagai berikut:
Method Route Description
GET / Menampilkan seluruh Employee yang terdaftar

GET /employees/add Menampilkan form untuk menambahkan Employee

POST /employees/add Menambahkan data Employee

GET /employees/edit/:id Menampilkan form untuk melakukan edit Employee

POST /employees/edit/:id Mengedit data Employee

GET /employees/delete/:id Menghapus Employee

Create New Migration


Tambahkan kolom baru dengan nama age (INTEGER) pada table Employees dan
jangan lupa mengubah ERD nya juga.

Release 2 - Read & Create


Home ( route / )
Buatlah halaman Home yang akan menampilkan data yang diambil dari Tabel
Employee ( Tampilan tidak harus dalam bentuk card, boleh tabel biasa ). Data yang
kalian akan tampilkan adalah, profile_picture, name, age, position, education, email,
phone_number.

Create Employee

Kalian diminta untuk bisa menambahkan data employee kedalam database


menggunakan Sequelize. Buatlah sebuah tombol atau navigasi untuk masuk ke dalam
halaman untuk menambahkan Employee tombol tersebut akan mengarahkan kita ke
route ( route /employees/add )
Di Halaman tersebut akan diberikan sebuah form untuk diisi yang berisi informasi
Employee baru.

Education berupa select dengan 2 option:


- Bachelor Degree
- Master Degree

Setelah melakukan submit maka kalian diminta untuk men-redirect dari halaman
tersebut ke halaman Home ( route / )
Release 3 - Edit Employee
Pada masing-masing Card di halaman home juga terdapat tombol Edit ketika tombol
Edit di tekan maka akan langsung masuk ke halaman Edit

Setelah kalian submit tombol edit maka akan langsung men-redirect ke halaman Home
(route / ) dan data yang ditampilkan akan langsung terupdate.

Release 4 - Delete Employee

Pada Card terdapat button delete, data akan terhapus pada database berdasarkan id
yang dipilih. Saat data Employee berhasil terhapus, maka akan langsung mendirect ke
halaman Home ( route / ) data yang tampil pada halaman Home harus langsung
terupdate.

Release 5 - Sort & Filter

Pada release ini kalian diminta untuk membuat fitur sort berdasarkan nama & position
dan menambahkan fitur filter berdasarkan Degree yang dimiliki oleh masing-masing
Employee dengan menggunakan GET / dan mengimplementasikan req.query . ( Fitur ini
berjalan sendiri-sendiri jadi tidak terkait satu sama lain sehingga apabila kalian
melakukan sorting lalu kalian melakukan filter maka data yang diterima oleh filter bukan
data yang telah ter-sorting )

Sort

Example Sort by Name

Filter
Example Filter by Master Degree

Example Filter by Bachelor Degree

Anda mungkin juga menyukai