Vent adalah sebuah aplikasi manajemen inventaris berbasis web yang dirancang untuk membantu perusahaan dalam mengelola dan memantau inventaris barang secara efektif. Aplikasi ini dibangun menggunakan Laravel, framework PHP yang tangguh dan populer, yang memastikan aplikasi berjalan dengan cepat, aman, dan mudah dikembangkan lebih lanjut. Untuk meningkatkan fungsionalitas dan interaktivitas, Vent mengintegrasikan Filament, sebuah library khusus yang mempermudah pembuatan halaman dashboard admin yang dinamis, intuitif, dan kaya fitur. Dengan Filament, administrator dapat mengakses berbagai data inventaris, melakukan pemantauan, serta mendapatkan informasi yang real-time dalam tampilan yang user-friendly.
Tidak hanya fokus pada sisi administrasi, Vent juga menawarkan landing page yang menarik dan responsif dengan memanfaatkan DaisyUI – salah satu library dari Tailwind CSS. DaisyUI memberikan komponen antarmuka yang modern dan konsisten, sehingga tampilan aplikasi tidak hanya fungsional, tetapi juga memiliki desain yang estetis dan nyaman bagi pengguna.
Dibuatnya aplikasi ini bertujuan untuk memberikan kemudahan bagi perusahaan dalam memonitor, mengelola, dan mengatur inventaris barang secara efisien. Vent memungkinkan pengelolaan inventaris menjadi lebih terstruktur, mulai dari pencatatan masuk dan keluarnya barang, hingga pelacakan ketersediaan stok secara akurat. Dengan demikian, Vent mendukung perusahaan dalam menjaga ketersediaan barang, meminimalisir kesalahan manusia dalam pengelolaan, serta meningkatkan produktivitas melalui pengelolaan inventaris yang lebih terpusat dan terdigitalisasi.
- CRUD untuk data item
- CRUD untuk data kategori
- CRUD untuk data supplier
- CRUD User Admin
- Tabel ringkasan stok barang termasuk stok total, total nilai stok dan rata-rata harga barang.
- Tabel daftar barang yang stoknya di bawah ambang batas tertentu.
- Laporan barang berdasarkan kategori tertentu.
- Tabel ringkasan per kategori, termasuk jumlah barang per kategori, total nilai stok tiap kategori, dan rata-rata harga barang dalam kategori tersebut.
- Tabel ringkasan barang yang disuplai oleh masing-masing pemasok, termasuk jumlah barang per pemasok dan total nilai barang yang disuplai.
- Tabel ringkasan dari keseluruhan sistem, termasuk total jumlah barang, nilai stok keseluruhan, jumlah kategori, dan jumlah pemasok.
- Laravel - Framework PHP
- MySQL - Relational Database Management System
- Nginx - Web server
- Docker - Container platform
- Primavieri Rhesa Ardana - A11.2022.14557
- Fadhil Firmansyah - A11.2022.14560
- Bagas Satria - A11.2022.14565
Pada sistem operasi user telah terinstal Docker Desktop
atau package docker
& docker-compose
git clone https://github.com/FadhilFirmansyah/container-inventory.git
Clonning project manajemen inventory ke directory yang sedang anda akses saat ini
cd container-inventory
Berpindah menuju directory / folder hasil dari project yang telah di clone
./setup.sh
Melakukan setup installasi dari awal hingga akhir (container-frontend-backend), scripting yang membantu dengan menghindari serimonial setup ;)
Sayangnya scripting setup.sh
tidak bisa berjalan kecuali user menggunakan wsl dengan mounting yang sesuai maka bisa apabila menggunakan cara reguler pada Windows sayangnya tidak bisa, user harus melakukan kegiatan seremonial setup :(
docker-compose up -d --build
Bertujuan untuk inisialisasi awal seperti pembuatan Dockerfile
dan docker-compose.yml
menjadi suatu container
docker-compose exec app chmod -R 777 /var/www/html/storage /var/www/html/bootstrap/cache
Direcotry /storage
dan /bootstrap/cache
akan memiliki semua akses (Write, Read, Execute)
docker exec laravel_app npm i
Menginstall segala dependency untuk frontend yang bersumber dari package.json
docker exec laravel_app npm run build
Perintah yang menjalankan skrip build
yang terdefinisi di file package.json
dalam container laravel_app
docker exec laravel_app composer install
Menginstal dependensi PHP yang terdaftar di file composer.json
dalam container laravel_app
docker exec laravel_app cp .env.example .env
Menyalin file .env.example
menjadi file .env
di dalam container laravel_app
, yang digunakan untuk konfigurasi aplikasi
docker exec laravel_app php artisan key:generate
Menghasilkan dan mengatur kunci aplikasi baru untuk Laravel di dalam container laravel_app
, yang digunakan untuk keamanan aplikasi
Ubah file .env
yang terletak di /inventory-project
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=inventory
DB_USERNAME=root
DB_PASSWORD=
Menjadi
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=inventory
DB_USERNAME=root
DB_PASSWORD=root
docker exec laravel_app php artisan migrate --seed
Migrasi database untuk memperbarui struktur tabel dan mengisi data awal (seeding) di dalam container laravel_app
Username : admin
Email : admin@gmail.com
Password : sudo
Menemui masalah berupa tidak bisa menjalankan perintah
docker exec laravel_app php artisan migrate --seed
Hal ini terjadi karena Kredensial database dalam konfigurasi container MySQL tidak benar. Mencoba membuat user root dengan MYSQL_USER yang tidak diizinkan - user root sudah dibuat secara otomatis dengan MYSQL_ROOT_PASSWORD, maka langkah yang perlu dilakukan adalah merubah .env
nya menjadi berikut
DB_CONNECTION=mysql
DB_HOST=mysql_db
DB_PORT=3306
DB_DATABASE=inventory
DB_USERNAME=root
DB_PASSWORD=root
lalu menambahkan config berikut di docker-compose.yml
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: always
working_dir: /var/www/html
volumes:
- ./inventory-project:/var/www/html
depends_on:
- db
networks:
- app-network
db:
image: mysql:8.0
container_name: mysql_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: inventory
ports:
- "3307:3306"
volumes:
- db_data:/var/lib/mysql
healthcheck: # Adding healthcheck for monitoring (Optional)
test: ["CMD", "mysqladmin", "ping", "-proot"]
interval: 10s
timeout: 5s
retries: 5
networks:
- app-network
Lalu jalankan ulang migrate seed nya , maka akan bisa menjalankannya
- docker-compose.yml - Konfigurasi yang digunakan oleh Docker Compose untuk mendefinisikan dan menjalankan multi-container Docker aplikasi, termasuk pengaturan layanan, jaringan, volume, dan penghubung antar container
- Dockerfile - File teks yang berisi serangkaian instruksi untuk membangun image Docker, termasuk pengaturan sistem, instalasi aplikasi, dan konfigurasi yang diperlukan
- inventory-project - Source code project aplikasi manajemen inventory
- nginx.conf - File konfigurasi utama Nginx yang mengatur pengaturan server, rute trafik, dan interaksi dengan aplikasi
- setup.sh - Script installasi setup untuk membuat container, frontend, backend, dan database