Farrel Giovanni Jaohari

Celebes Digital

Celebes DigitalCelebes Digital

Website link:https://github.com/celebes-digital/app-celebes-digital/

Start: 13/11/2024 - End: 18/02/2025

Celebes Digital adalah perusahaan software house yang menyediakan jasa pembuatan website dan aplikasi. Saat magang kami diminta untuk membuat website landing page yang baru dengan fitur Content Management System (fitur untuk mengedit tampilan dan membuat data menjadi dinamis). Website ini menampilkan data perusahaan yang pernah menggunakan jasa Celebes Digital, proyek-proyek yang pernah dikerjakan, testimoni dan foto-foto karyawan, CTO, dan CEO.

Tech stack yang digunakan pada website ini adalah Laravel, React, MySQL, TailwindCSS dan Filament. Saya di sini memiliki role sebagai full-stack developer (bukan designer).

Dalam website ini juga terdapat halaman-halaman yang khusus hanya karyawan, CTO, dan CEO yang dapat mengaksesnya. Halaman-halaman itu meliputi pendataaan project yang didapatkan oleh sales, form project-project yang pernah dikerjakan, list-list kerjaan yang sedang dikerja, timeschedule pembagian tugas, data chanel promosi, data karyawan, data jasa yang dijual, data galeri, data testimoni dan masih banyak lagi. Setiap data ini hanya bisa diakses oleh role tertentu, jadi pada website ini saya membutuhkan policy agar fitur-fitur tertentu hanya bisa diakses oleh role tertentu. Data-data ini rencananya akan dievaluasi setiap rapat sehingga memudahkan semua karyawan tanpa harus membawa catatan seperti buku karena semuanya sudah di data pada webstie.

1
public function viewAny(User $user): bool
2
{
3
return $user->role->name === 'admin' || $user->role->name === 'cto';
4
}
5
6
/**
7
* Determine whether the user can view the model.
8
*/
9
public function view(User $user, ItemKerja $itemKerja): bool
10
{
11
return $user->role->name === 'admin' || $user->role->name === 'cto';
12
}
13
14
/**
15
* Determine whether the user can create models.
16
*/
17
public function create(User $user): bool
18
{
19
return $user->role->name === 'cto';
20
}
21
22
/**
23
* Determine whether the user can update the model.
24
*/
25
public function update(User $user, ItemKerja $itemKerja): bool
26
{
27
return $user->role->name === 'cto';
28
}
29
30
/**
31
* Determine whether the user can delete the model.
32
*/
33
public function delete(User $user, ItemKerja $itemKerja): bool
34
{
35
return $user->role->name === 'cto';
36
}
37
38
public function deleteAny(User $user): bool
39
{
40
return $user->role->name === 'cto';
41
}
42
43
/**
44
* Determine whether the user can restore the model.
45
*/
46
public function restore(User $user, ItemKerja $itemKerja): bool
47
{
48
return $user->role->name === 'cto';
49
}
50
51
/**
52
* Determine whether the user can permanently delete the model.
53
*/
54
public function forceDelete(User $user, ItemKerja $itemKerja): bool
55
{
56
return $user->role->name === 'cto';
57
}

Pada code di atas, itulah code yang mengatur policy tapi itu hanya contoh policy dari pengaturan data item kerja. Jadi code di atas bekerja dengan cara mengecek role user sebelum menampilkan halamannya, jika rolenya tidak sesuai dengan yang kondisi yang ada, maka usernya tidak dapat mengakses halaman, mengedit, menambah, dan menghapus datanya.

Tantangan dari website ini adalah terlalu banyak form yang harus dibuat sehingga saya disarankan oleh pembimbing di tempat magang saat itu yaitu CTO nya sendiri untuk menggunakan Filament agar formnya bisa cepat selesai. Jadi ini merupakan pengalamn pertama saya juga dalam menggunakan filament. Namun sayang sekali website ini hanya di hosting sebentar dan perusahaan tersebut berhenti beroperasi sesudah kami selesai magang jadi link yang saya taruh hanya link repository github.

HAVE A PROJECT IN MIND?

LET'S CREATEGREAT THINGS together.

GET IN TOUCH
© 2025 Farrel Giovanni Jaohari. All rights reserved.