Web Keuangan Pribadi adalah aplikasi web yang dirancang untuk membantu Anda mengelola keuangan dengan lebih efektif dan efisien. Dibangun menggunakan Laravel framework, aplikasi ini menawarkan antarmuka yang modern, responsif, dan mudah digunakan untuk mencatat, menganalisis, dan mengoptimalkan pengelolaan keuangan pribadi Anda.
- Memudahkan pencatatan transaksi keuangan harian
- Memberikan visualisasi data keuangan yang mudah dipahami
- Membantu pengguna membuat keputusan keuangan yang lebih baik
- Menyediakan rekomendasi berdasarkan pola pengeluaran
- Meningkatkan kesadaran finansial pengguna
- Dashboard Interaktif - Visualisasi data keuangan real-time dengan grafik yang menarik
- Grafik & Chart - Menggunakan Chart.js untuk menampilkan:
- Grafik pengeluaran vs pemasukan bulanan
- Pie chart kategori pengeluaran
- Trend keuangan per periode
- Perbandingan budget vs actual
- Filter & Pencarian - Filter data berdasarkan tanggal, kategori, dan jenis transaksi
- Laporan Lengkap - Generate laporan keuangan bulanan dan tahunan
- Form Input Mudah - Interface yang intuitif untuk mencatat transaksi
- Dual Type Transaction - Catat pemasukan dan pengeluaran dengan mudah
- Kategori Fleksibel - Buat dan kelola kategori sesuai kebutuhan
- Upload Bukti - Lampirkan foto nota atau bukti transaksi
- Quick Entry - Fitur quick add untuk pencatatan cepat
- Validasi Real-time - Validasi input langsung dengan notifikasi
- Edit Transaksi - Ubah data transaksi yang sudah tercatat
- Hapus Aman - Modal konfirmasi untuk menghindari penghapusan tidak sengaja
- Soft Delete - Data terhapus masih dapat dipulihkan
- Bulk Actions - Hapus atau edit multiple transaksi sekaligus
- History Log - Riwayat perubahan data
- Auto Save - Penyimpanan otomatis setiap perubahan
- Database Sync - Sinkronisasi real-time ke MySQL database
- Backup Otomatis - Backup data secara berkala
- Data Security - Enkripsi data sensitif
- Cloud Ready - Siap diintegrasikan dengan cloud storage
- AI-Powered Suggestions - Saran berdasarkan analisis pola pengeluaran
- Budget Alert - Notifikasi ketika mendekati atau melebihi budget
- Spending Analysis - Identifikasi kategori pengeluaran terbesar
- Saving Tips - Tips menabung berdasarkan income dan spending
- Financial Goals - Tracking progress menuju target keuangan
- Smart Reminders - Pengingat pembayaran rutin
- Export Data - Download laporan dalam format Excel & PDF
- Multi-Currency - Support berbagai mata uang (optional)
- Responsive Design - Optimal di desktop, tablet, dan mobile
- User Management - Multi-user dengan role & permission
- Security - Authentication & authorization lengkap
| Teknologi | Versi | Kegunaan |
|---|---|---|
| Laravel | 10.x | PHP Framework utama |
| PHP | 8.1+ | Server-side programming |
| MySQL | 5.7+ | Database management |
| Eloquent ORM | - | Database interaction |
| Teknologi | Versi | Kegunaan |
|---|---|---|
| Bootstrap | 5.3 | CSS Framework |
| JavaScript | ES6+ | Client-side scripting |
| jQuery | 3.x | DOM manipulation |
| Chart.js | 4.x | Data visualization |
| FontAwesome | 6.x | Icon library |
| SweetAlert2 | - | Beautiful alerts |
- Composer - PHP dependency manager
- NPM - JavaScript package manager
- Vite - Frontend build tool
- Laravel Breeze - Authentication scaffolding
- Laravel Excel - Excel export/import
- DomPDF - PDF generation
- DataTables - Advanced table features
Sebelum instalasi, pastikan sistem Anda memenuhi requirements berikut:
- PHP: >= 8.1
- Composer: >= 2.0
- Node.js: >= 16.x
- NPM: >= 8.x
- MySQL: >= 5.7 atau MariaDB >= 10.3
- Web Server: Apache 2.4+ / Nginx 1.18+
- PHP: 8.2+
- MySQL: 8.0+
- RAM: Minimal 2GB
- Storage: Minimal 500MB free space
- XAMPP / WAMP / LARAGON (untuk Windows)
- MAMP (untuk MacOS)
- LAMP (untuk Linux)
- PHPMyAdmin (database management)
- Git (version control)
Ikuti langkah-langkah berikut untuk menginstall aplikasi:
# Clone repository dari GitHub
git clone https://github.com/Davin164/Web-KeuanganPribadi.git
# Masuk ke direktori project
cd Web-KeuanganPribadi# Install PHP dependencies
composer install
# Install JavaScript dependencies
npm install# Copy file environment
cp .env.example .env
# Generate application key
php artisan key:generateEdit file .env dan sesuaikan konfigurasi:
APP_NAME="Web Keuangan Pribadi"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=keuangan_pribadi
DB_USERNAME=root
DB_PASSWORD=
# Optional: Mail configuration
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-passwordOpsi A: Menggunakan PHPMyAdmin
- Buka PHPMyAdmin di browser (http://localhost/phpmyadmin)
- Klik "New" untuk membuat database baru
- Nama database:
keuangan_pribadi - Collation:
utf8mb4_unicode_ci - Klik "Create"
Opsi B: Menggunakan Command Line
mysql -u root -p
CREATE DATABASE keuangan_pribadi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;# Jalankan migrasi untuk membuat tabel
php artisan migrate
# (Optional) Jalankan seeder untuk data dummy
php artisan db:seed# Development mode (with hot reload)
npm run dev
# Production mode (optimized)
npm run build# Buat symbolic link untuk storage
php artisan storage:link# Start Laravel development server
php artisan serve
# Atau jika port 8000 sudah terpakai
php artisan serve --port=8080Akses aplikasi di browser:
- URL:
http://localhost:8000 - Username:
admin@example.com(jika ada seeder) - Password:
password
users (1) ──── (∞) transactions
users (1) ──── (∞) categories
users (1) ──── (∞) budgets
users (1) ──── (∞) savings_goals
categories (1) ──── (∞) transactions
categories (1) ──── (∞) budgets
- Akses aplikasi di browser
- Klik "Register" untuk membuat akun baru
- Isi form registrasi (nama, email, password)
- Login dengan email dan password
- Lengkapi profil pengguna
- Masuk ke menu "Kategori"
- Klik tombol "Tambah Kategori"
- Pilih tipe: Pemasukan atau Pengeluaran
- Isi nama kategori (contoh: Gaji, Makanan, Transport)
- Pilih icon dan warna
- Klik "Simpan"
Contoh Kategori Pemasukan:
- 💼 Gaji
- 💰 Bonus
- 📈 Investasi
- 🎁 Hadiah
Contoh Kategori Pengeluaran:
- 🍔 Makanan & Minuman
- 🚗 Transportasi
- 🏠 Rumah & Utilitas
- 👕 Belanja
- 🎮 Entertainment
- Klik tombol "+ Tambah Transaksi"
- Pilih Tipe Transaksi (Pemasukan/Pengeluaran)
- Pilih Kategori
- Masukkan Jumlah (contoh: 50000)
- Pilih Tanggal Transaksi
- Isi Keterangan (optional)
- Upload Bukti (foto nota, optional)
- Klik "Simpan"
Dashboard akan menampilkan:
- 💰 Total pemasukan bulan ini
- 💸 Total pengeluaran bulan ini
- 💵 Saldo bersih
- 📊 Grafik pengeluaran per kategori
- 📈 Trend keuangan 6 bulan terakhir
⚠️ Alert budget overrun- 🎯 Progress savings goals
Edit Transaksi:
- Klik icon ✏️ Edit pada transaksi
- Ubah data yang diperlukan
- Klik "Update"
Hapus Transaksi:
- Klik icon 🗑️ Delete pada transaksi
- Konfirmasi di modal popup
- Data akan dihapus (soft delete)
Set Budget:
- Menu "Budget" → "Tambah Budget"
- Pilih kategori
- Set jumlah budget per bulan
- Sistem akan alert jika melebihi budget
Savings Goal:
- Menu "Target Tabungan" → "Tambah Target"
- Isi judul target (contoh: "Beli Laptop")
- Set target amount dan tanggal
- Track progress di dashboard
- Menu "Laporan"
- Pilih periode (bulan/tahun)
- Pilih format export:
- 📊 Excel - untuk analisis lanjut
- 📄 PDF - untuk print/archive
- Klik "Download"
Aplikasi ini dilengkapi dengan berbagai fitur keamanan:
✅ Authentication
- Login dengan email & password
- Remember me functionality
- Password hashing dengan bcrypt
- Session management
✅ Authorization
- Role-based access control
- User ownership validation
- Protected routes
✅ Data Security
- CSRF protection
- SQL injection prevention (Eloquent ORM)
- XSS protection
- Input validation & sanitization
- Prepared statements
✅ File Security
- Upload validation (type, size)
- Secure file storage
- Protected file access
# Jalankan semua tests
php artisan test
# Test dengan coverage report
php artisan test --coverage
# Test specific file
php artisan test tests/Feature/TransactionTest.php
# Test dengan detailed output
php artisan test --verbose- ✅ User authentication
- ✅ Transaction CRUD operations
- ✅ Category management
- ✅ Budget calculation
- ✅ Report generation
1. Environment Setup
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com2. Optimize Application
# Cache configuration
php artisan config:cache
# Cache routes
php artisan route:cache
# Cache views
php artisan view:cache
# Optimize autoloader
composer install --optimize-autoloader --no-dev3. Database
# Run migrations on production
php artisan migrate --force
# Don't run seeders on production!4. File Permissions
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache5. Setup Cron Job
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&16. SSL Certificate
- Install SSL certificate (Let's Encrypt recommended)
- Force HTTPS in
.env:APP_FORCE_HTTPS=true
Kontribusi sangat diterima dan dihargai! Berikut cara berkontribusi:
- Fork repository ini
- Clone fork Anda
git clone https://github.com/YOUR_USERNAME/Web-KeuanganPribadi.git
- Buat branch untuk fitur baru
git checkout -b feature/AmazingFeature
- Commit perubahan Anda
git commit -m 'Add some AmazingFeature' - Push ke branch
git push origin feature/AmazingFeature
- Buat Pull Request
- Follow PSR-12 coding standard
- Write meaningful commit messages
- Add comments untuk kode yang kompleks
- Write tests untuk fitur baru
- Update documentation
Berikut adalah beberapa issue yang sedang dalam perbaikan:
- Mobile Responsive - Beberapa halaman perlu improvement untuk mobile
- Real-time Updates - Dashboard belum real-time update
- Export Large Data - Timeout saat export data > 10,000 records
- Dark Mode - Masih dalam development
- Multi-language - Belum support bahasa lain
Q: Apakah aplikasi ini gratis?
A: Ya, aplikasi ini 100% gratis dan open source dengan lisensi MIT.
Q: Apakah data saya aman?
A: Ya, data Anda aman. Aplikasi menggunakan enkripsi password dan berbagai fitur keamanan Laravel.
Q: Bisakah digunakan untuk bisnis?
A: Ya, Anda bisa memodifikasi sesuai kebutuhan bisnis Anda.
Q: Bagaimana cara backup data?
A: Gunakan fitur export atau backup database MySQL secara berkala melalui PHPMyAdmin.
Q: Support multi-user?
A: Ya, setiap user memiliki data terpisah dan aman.
Project ini dilisensikan di bawah MIT License - lihat file LICENSE untuk detail lengkap.
MIT License
Copyright (c) 2025 Davin164
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
[Full MIT License text...]
Terima kasih kepada:
- Laravel Community - Framework yang luar biasa
- Bootstrap Team - CSS framework yang powerful
- Chart.js Contributors - Library visualisasi data
- FontAwesome - Icon library yang lengkap
- All Contributors - Yang telah berkontribusi ke project ini
Made with ❤️ in Indonesia 🇮🇩
Copyright © 2025 Davin164. All rights reserved.