Junior Programmer Yayasan Vitka (Backend) 2024
Ini merupakan Test Untuk Backend Junior Programmer Yayasan Vitka,
Maksimal 7 Hari setelah soal diberikan. Lebih cepat lebih baik
- PHP
- CSS
- understand Laravel Framework
- Understand GIT and able to use it in workflow
- Understand MySQL
- JavaScript
Aplikasi ini digunakan untuk pendataan dan memiliki fitur sebagai berikut:
-
CRUD untuk Supplier
- Terdapat operasi Create, Read, Update, dan Delete untuk Supplier.
-
CRUD untuk Category
- Terdapat operasi Create, Read, Update, dan Delete untuk Category.
-
CRUD untuk Product
- Terdapat operasi Create, Read, Update, dan Delete untuk Product.
- Pada form Product, dapat memilih Supplier dan Category.
- Setiap Product terhubung dengan satu Supplier dan satu Category.
-
CRUD untuk Warehouse
- Terdapat operasi Create, Read, Update, dan Delete untuk Warehouse.
- Fitur untuk mengelola product di setiap warehouse: a. Menambahkan product ke warehouse; b. Menghapus product dari warehouse; c. Menampilkan daftar product yang tersedia di setiap warehouse.
Kamu diminta menggunakan [BackPack](https://backpackforlaravel.com/docs) untuk membuat fitur no 4 pada 'Detail Tentang Aplikasi' dengan detail:
- Buat Migrasi, Model dan CRUD untuk Warehouses. Tabel ini hanya memiliki column
name
selain primary dan timestamp. - Relasikan products dengan warehouses (implementasikan relasi database dan CRUD,many-to-many) dan intermediate table product_warehouse, sesuaikan dengan penjelasan fitur no 4 pada 'Detail Tentang Aplikasi'.
- Tambahkan validasi form ketika create dan update pada Products dan Warehouse yang sesuai pada model masing-masing.
- Tambahkan filters (berdasarkan Category dan Supplier) pada halaman Products.
Bonus Quest:
- Buat API untuk data Products dengan format API:
{“data”:[[…], […], …], “count”:X}
.
Silahkan fork repositori ini, jalankan migrasi database, dan seeder untuk user.
Lakukan Pull Request untuk challenge di bawah ini:
- Setiap point dalam challenge harus di submit dalam
pull request
yang terpisah. - Peserta tidak harus menyelesaikan seluruh challenge, namun bobot penilaian tentunya akan lebih tinggi jika peserta mampu menyelesaikan seluruh challenge yang diberikan.