Aplikasi manajemen keuangan pribadi yang komprehensif dengan fitur analitik canggih.
- Multi-Wallet System: Kelola banyak dompet (Cash, Bank, E-Wallet, Kartu Kredit)
- Pencatatan Transaksi: CRUD lengkap untuk income/expense dengan foto bukti
- Transfer Antar Akun: Pindahkan saldo antar dompet tanpa dianggap pengeluaran
- Recurring Transactions: Otomatis catat tagihan bulanan
- Manajemen Utang & Piutang: Tracking lengkap dengan jatuh tempo
- Budgeting per Kategori: Set batas maksimal pengeluaran per kategori
- Visual Progress Bar: Monitor persentase pemakaian budget
- Financial Goals: Target tabungan dengan perhitungan otomatis
- Kalender Keuangan: Tampilan kalender untuk tagihan dan gaji
- Dashboard Interaktif: Grafik pie chart dan line chart
- Laporan Net Worth: Tracking kekayaan bersih
- Comparison: Bandingkan pengeluaran bulan ini vs bulan lalu
- Export Data: Download laporan PDF/Excel (coming soon)
- App Lock: PIN protection
- Privacy Mode: Sembunyikan nominal uang di tempat umum
- End-to-End Encryption: Enkripsi data sensitif
- Session Management: Auto-logout setelah tidak aktif
- Node.js + Express.js
- MySQL dengan Sequelize ORM
- Socket.io untuk real-time
- JWT + Bcrypt untuk autentikasi
- React.js dengan Vite
- Tailwind CSS untuk styling
- React Context untuk state management
- Axios untuk HTTP client
- Recharts untuk visualisasi data
Proyek ini mendukung Docker Compose untuk setup cepat:
docker-compose up --buildIni akan menjalankan kontainer MySQL (port 3307), Backend (port 5000), dan Frontend (port 5173) secara otomatis.
Jalankan di terminal folder proyek
kubectl apply -f k8s/secrets.yaml
kubectl apply -f k8s/mysql-deployment.yaml
kubectl apply -f k8s/backend-deployment.yaml
kubectl apply -f k8s/frontend-deployment.yaml
kubectl apply -f k8s/backend-hpa.yaml
kubectl apply -f k8s/backend-monitor.yaml
Jalankan di CMD dengan Run Administrator
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install monitoring prometheus-community/kube-prometheus-stack
kubectl port-forward deployment/monitoring-grafana 3000:3000
kubectl port-forward svc/monitoring-kube-prometheus-prometheus 9090:9090
- Node.js (v18+)
- MySQL (v8+)
- npm atau yarn
- Masuk ke folder backend:
cd backend- Install dependencies:
npm install- Buat file
.envdari.env.example:
cp .env.example .env- Edit file
.envdan isi konfigurasi database:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=smart_finance_tracker
DB_PORT=3306
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=7d
PORT=5000
NODE_ENV=development
ENCRYPTION_KEY=your-32-character-encryption-key-here
SESSION_TIMEOUT=30- Buat database:
npm run create-db- Jalankan server:
npm run devServer akan berjalan di http://localhost:5000
- Masuk ke folder frontend:
cd frontend- Install dependencies:
npm install- Buat file
.env(opsional):
VITE_API_URL=http://localhost:5000/api- Jalankan development server:
npm run devFrontend akan berjalan di http://localhost:5173
backend/: Express API, Sequelize models.frontend/: React application, Vite config, Tailwind styling.k8s/: Konfigurasi deployment untuk Kubernetes.
POST /api/auth/register- Register user baruPOST /api/auth/login- LoginPOST /api/auth/app-lock/pin- Set PINPOST /api/auth/app-lock/verify- Verify PINPOST /api/auth/privacy-mode/toggle- Toggle privacy mode
GET /api/wallets- Get all walletsPOST /api/wallets- Create walletPUT /api/wallets/:id- Update walletDELETE /api/wallets/:id- Delete wallet
GET /api/transactions- Get transactionsPOST /api/transactions- Create transactionPUT /api/transactions/:id- Update transactionDELETE /api/transactions/:id- Delete transaction
GET /api/budgets- Get budgetsPOST /api/budgets- Create budgetPUT /api/budgets/:id- Update budgetDELETE /api/budgets/:id- Delete budget
GET /api/goals- Get goalsPOST /api/goals- Create goalPUT /api/goals/:id- Update goalPOST /api/goals/:id/add- Add amount to goal
GET /api/debts- Get debtsPOST /api/debts- Create debtPUT /api/debts/:id- Update debtGET /api/debts/upcoming- Get upcoming debts
GET /api/analytics/dashboard- Get dashboard dataGET /api/analytics/cash-flow- Get cash flow dataGET /api/analytics/category-report- Get category report
- Register/Login: Buat akun baru atau login
- Buat Dompet: Tambah dompet pertama Anda
- Catat Transaksi: Mulai mencatat income dan expense
- Set Budget: Buat budget untuk kategori tertentu
- Buat Goal: Tentukan target tabungan
- Lihat Dashboard: Monitor keuangan Anda secara real-time
- Password di-hash menggunakan bcrypt
- JWT token untuk autentikasi
- End-to-end encryption untuk data sensitif
- Session timeout otomatis
- App lock dengan PIN
# Backend
cd backend && npm run dev
# Frontend (terminal baru)
cd frontend && npm run dev# Frontend
cd frontend && npm run build- Pastikan MySQL sudah berjalan sebelum menjalankan backend
- Untuk production, ubah
NODE_ENV=productiondan gunakan database yang aman - Generate
ENCRYPTION_KEYyang kuat (32 karakter) - Generate
JWT_SECRETyang unik dan aman
Silakan buat issue atau pull request untuk kontribusi.
MIT License