Project pada repository ini adalah berupa admin panel (CRUD) yang ditujukan untuk penggunaan internal suatu perusahaan penyedia layanan berupa pembuatan solusi digital (berupa Web Application, Mobile Application, IoT Infrastructure (Firmware), dll). Admin panel ini digunakan untuk mengelola data-data seperti client (customer yang menggunakan jasa perusahaan penyedia layanan berbasis solusi digital) dan project (proyek yang dikerjakan oleh perusahaan penyedia layanan berbasis solusi digital), dan user (berupa ADMIN yang dapat mengakses admin panel ini).
main
branch adalah branch utama yang digunakan untuk deploy ke productiondevelopment
branch adalah branch yang digunakan untuk development
feat
: (new feature for the user, not a new feature for build script)fix
: (bug fix for the user, not a fix to a build script)docs
: (changes to the documentation)style
: (formatting, missing semi colons, etc; no production code change)refactor
: (refactoring production code, eg. renaming a variable)test
: (adding missing tests, refactoring tests; no production code change)chore
: (updating grunt tasks etc; no production code change)
- Clone repository ini (branch
main
) - cd ke root folder
- Buka folder project di Visual Studio Code (
code .
in CLI) - Buka terminal dan run
composer install
- Run 'php artisan migrate'
- Run 'php artisan serve'
- Buka browser dan akses
localhost:8000
- Clone repository ini (branch
main
) - cd ke folder
react-fe
- Buka folder project di Visual Studio Code (
code .
in CLI) - Buka terminal dan run
npm install
- Run 'npm run dev'
- Buka browser dan akses
localhost:3000
Sudah disediakan file .env.example
yang dapat digunakan untuk membuat file .env
yang berisi environtment variables yang dibutuhkan oleh aplikasi ini. Untuk menjalankan aplikasi ini, pastikan sudah mengisi environtment variables yang dibutuhkan.
-
Terdapat 3 tabel utama, yaitu
users
,clients
, danprojects
-
Tabel
users
digunakan untuk menyimpan data user yang dapat mengakses admin panel ini. User yang dapat mengakses admin panel ini semuanya diasumsikan sebagai ADMIN. -
Tabel
clients
digunakan untuk menyimpan data client (customer yang menggunakan jasa perusahaan penyedia layanan berbasis solusi digital) -
Tabel
projects
digunakan untuk menyimpan data project (proyek yang dikerjakan oleh perusahaan penyedia layanan berbasis solusi digital) -
Kardinalitas antar tabel:
- Tabel
users
sebenarnya adalah tabel yang tidak memiliki kardinalitas dengan tabel lainnya, karena tabel ini hanya digunakan untuk menyimpan data user yang dapat mengakses admin panel ini. Namun, karena user dapat mengakses semua data pada admin panel ini, tabelusers
memiliki kardinalitas 1:N dengan tabelclients
dan tabelprojects
secara 'tidak langsung' :D. Namun, sebenarnya tidak ada kaitannya sama sekali dalam logika database design (logika bisnisnya). - Tabel
clients
memiliki kardinalitas 1:N dengan tabelprojects
- Tabel
-
Laravel 8.x : Backend dari proyek ini dibangun menggunakan Laravel, sebuah framework PHP yang sering dikenal karena sintaks dan fiturnya yang elegan. Laravel juga mengikuti pola arsitektur MVC (Model-View-Controller).
-
MySQL : Sistem manajemen basis data yang digunakan adalah MySQL. Kalian harus pastikan bahwa MySQL sudah diinstal dan dikonfigurasi dengan kredensial yang dibutuhkan yang disebutkan di dalam file
.env
. -
Postman API : Postman digunakan untuk menguji dan mendokumentasikan API. Kalian dapat mengimpor Postman Collection yang disediakan (sudah saya upload linknya) untuk menguji endpoint API dari proyek ini.
-
OpenAPI (Swagger) : Proyek ini juga menggunakan OpenAPI (Swagger) untuk dokumentasi RESTful API. Kalian juga dapat mengakses dokumentasi API yang sudah tervisualisasi dengan baik menggunakan Swagger UI dengan menggunakan file
.json
yang sudah saya sediakan. -
XAMPP : XAMPP adalah paket solusi stack server web lintas platform yang mencakup server HTTP Apache, database MySQL, dan penerjemah untuk skrip yang ditulis dalam bahasa PHP.
-
React : Frontend dari proyek ini dibangun menggunakan React, sebuah library JavaScript untuk membuat antarmuka pengguna (dalam kasus ini saya gunakan untuk membuat views). React mengikuti arsitektur berbasis komponen untuk membuat komponen UI yang dapat digunakan kembali.
-
Typescript : Typescript digunakan bersamaan dengan React untuk mengaktifkan static typing, memberikan kualitas kode yang lebih baik dan pengalaman developer yang lebih baik karena adanya type-strict, type-safety, dan fitur-fitur lainnya.
-
TailwindCSS : TailwindCSS adalah framework CSS utility-first yang digunakan untuk memberikan style kepada komponen frontend. TailwindCSS menyediakan kelas utilitas tingkat rendah untuk membangun desain.
-
Node.js dan npm : Node.js diperlukan untuk menjalankan perintah npm (Node Package Manager). Pastikan kalian sudah menginstal Node.js yaa, yang mencakup npm, yang digunakan untuk mengelola ketergantungan frontend (untuk kasus proyek ini).
-
Git : Version Control dihandle menggunakan Git. Pastikan Git sudah diinstal untuk mengelola perubahan kode dengan efisien.
-
Visual Studio Code : IDE yang saya rekomendasikan untuk proyek ini adalah Visual Studio Code. VSCode menyediakan lingkungan pengembangan yang bagus dan mendukung berbagai ekstensi untuk pengembangan Laravel dan React. Sebenernya saya pengen make PHPStorm, tapi ternyata bayar 😂
Untuk API Documentation (Postman Collection dan file-file OpenAPI (Swagger)) dapat dilihat pada link berikut : API Documentation
- Fork repository ini ke akun GitHub kalian
- Clone repository hasil fork tersebut
- Buat branch baru sesuai dengan fitur yang ingin dikerjakan ataupun bug yang ingin diperbaiki
- Commit dan push perubahan ke branch tersebut (pastikan untuk tidak melakukan perubahan langsung ke branch
main
) - Buat pull request ke branch
development
pada repository ini - Tunggu hingga reviewer melakukan review dan merge pull request kalian
- Jika reviewer meminta perubahan, lakukan perubahan yang diminta dan lakukan commit dan push perubahan tersebut ke branch yang sama, lalu beri tahu reviewer bahwa perubahan sudah dilakukan
- Jika reviewer sudah menyetujui pull request kalian, pull request tersebut akan di-merge ke branch
development
dan branch yang kalian buat akan dihapus (untuk menghindari branch yang tidak terpakai)
Silakan berkontribusi pada proyek ini dengan memperbaiki bug yang ada, menambahkan fitur baru, ataupun meningkatkan dokumentasi. Selamat berkreasi 🎉!
- Gibran Fasha Ghazanfar - LinkedIn