Remove unneeded document

This commit is contained in:
Afiq Hamzah
2025-10-05 16:36:17 +08:00
parent cab39e6604
commit e9f9ebad30
-192
View File
@@ -1,192 +0,0 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Repository Overview
This is the **Kaunter** application, part of the Arrahn PKB (Pajak Gadai Sistem) - an Islamic pawn shop/mortgage management system. This Laravel 7.x application serves as the counter/teller interface for managing pawn transactions, customer interactions, and branch operations within a larger microservices architecture.
## Application Architecture
### Core Business Domain
The application manages Islamic financial transactions including:
- **Gadaian** - Pawn/mortgage transactions with Islamic finance compliance
- **Penebusan** - Redemption and repayment processes
- **Customer Management** - Customer records with document management
- **Marhun** - Collateral item management (primarily gold jewelry)
- **Treasury Operations** - Cash flow and financial reconciliation
### Role-Based Access Control
The system implements 8 distinct user roles with dedicated middleware:
- `teller` - Front desk operations
- `khazanah` - Treasury/financial management
- `operasi` - Operations management
- `admin` - Administrative functions
- `penilai` - Item appraisers
- `callcenter` - Customer service
- `audit` - Financial auditing
- `akaun` - Accounting functions
Each role has specific controllers, views, and middleware (`app/Http/Middleware/`).
### API-First Architecture
Controllers primarily delegate to external APIs rather than direct database operations:
- API URLs configured via `config('api.url')`
- API verification settings via `config('app.api_verify')`
- Multi-zone API support for different business units
## Development Commands
### Laravel Application Commands
```bash
# Install dependencies (use Docker containers as per parent repository)
docker compose run --rm composer install
docker compose run --rm npm install
# Generate application key
docker compose run --rm artisan key:generate
# Run migrations
docker compose run --rm artisan migrate
docker compose run --rm artisan migrate:fresh
# Clear caches
docker compose run --rm artisan cache:clear
docker compose run --rm artisan config:clear
docker compose run --rm artisan view:clear
```
### Frontend Asset Management
```bash
# Development build with watch
docker compose run --rm npm run dev
docker compose run --rm npm run watch
# Production build
docker compose run --rm npm run production
# Hot reload for development
docker compose run --rm npm run hot
```
### Testing
```bash
# Run all tests
docker compose run --rm vendor/bin/phpunit
# Run specific test suites
docker compose run --rm vendor/bin/phpunit --testsuite=Unit
docker compose run --rm vendor/bin/phpunit --testsuite=Feature
# Run with coverage
docker compose run --rm vendor/bin/phpunit --coverage-html coverage
```
### Custom Artisan Commands (Financial Operations)
```bash
# Daily financial operations
docker compose run --rm artisan akru:daily
docker compose run --rm artisan imbangduga:daily
# Monthly operations
docker compose run --rm artisan backup:stokaudit
# System maintenance
docker compose run --rm artisan reset:role-daily
docker compose run --rm artisan check:lelong-tawarruq
```
## Key Application Components
### Core Models & Relationships
- **`Gadaian`** - Central pawn transaction model with customer and marhun relationships
- **`Customer`** - Uses Spatie MediaLibrary for document management
- **`Penebusan`** - Redemption transactions linked to gadaian records
- **`Marhun`** - Collateral items with detailed specifications
- **`HargaEmas`** - Gold pricing with historical tracking
- **`ImbangDuga`** - Trial balance for financial reconciliation
### Business Services
- **`CustomerService`** - Customer operations including automated number generation
- **`ImbangdugaServices`** - Financial reconciliation and trial balance operations
### Event System
Real-time dashboard updates via Laravel Events:
- Dashboard notifications: `GadaiNotify`, `TebusNotify`, `KeuntunganNotify`
- Process events: `AutoSerahan`, `SerahanPenilai`
- User notifications: `NotifikasiPembayaran`, `NotifikasiKelulusan`
### Configuration Files
- **`config/redeemoption.php`** - Business logic toggles for redemption features
- **`config/adminlte.php`** - AdminLTE dashboard configuration
- **Environment files** - Multiple environment configurations in `env.docker.example/`
## Technology Stack
### Laravel Packages
- **AdminLTE 3** (`jeroennoten/laravel-adminlte`) - Administrative interface
- **Spatie MediaLibrary** - File and document management
- **DomPDF** (`barryvdh/laravel-dompdf`) - PDF report generation
- **Pusher** - Real-time notifications
- **Twilio SDK** - SMS communication
- **DataTables** (`yajra/laravel-datatables-oracle`) - Advanced table management
- **QR Code & Barcode** - Document generation utilities
### Frontend Stack
- **Laravel Mix** - Asset compilation (Webpack wrapper)
- **AdminLTE 3** - Bootstrap-based admin template
- **jQuery** - DOM manipulation and AJAX
- **Socket.io** - Real-time communication client
- **Bootstrap 4** - CSS framework
## Development Workflow
### Environment Setup
1. Copy appropriate environment file from `env.docker.example/` directory
2. Configure database connections for multi-zone setup
3. Set API endpoints for microservices communication
4. Configure Pusher for real-time features
5. Set up Twilio credentials for SMS functionality
### Working with Roles
When developing role-specific features:
1. Check relevant middleware in `app/Http/Middleware/`
2. Use role-specific views in `resources/views/homepage/{role}/`
3. Follow role-based routing patterns in `routes/web.php`
4. Ensure API calls respect role permissions
### API Integration Pattern
When adding new functionality:
1. Controllers should primarily make API calls rather than direct DB operations
2. Use Laravel HTTP client for external API communication
3. Handle API responses consistently across controllers
4. Implement proper error handling for API failures
### Testing Islamic Finance Logic
- Use `php artisan check:lelong-tawarruq` to verify Islamic compliance
- Test accrual calculations with `php artisan akru:daily`
- Validate trial balance with `php artisan imbangduga:daily`
## File Structure Notes
### View Organization
- **Versioned views** - `v1/` and `v2/` directories indicate system evolution
- **Role-based dashboards** - Separate homepage views for each user role
- **Business-specific templates** - Islamic finance compliance features
### Custom Commands Location
All financial operation commands are in `app/Console/Commands/` with descriptive names indicating their business purpose.
### Configuration Patterns
- Business logic configuration separated into dedicated config files
- Environment-specific settings in docker example files
- Multi-zone database configuration support
## Important Development Notes
- This application is part of a Docker microservices architecture
- Changes should maintain Islamic finance compliance requirements
- Real-time features depend on Pusher configuration
- Role-based access control is fundamental to all operations
- API integrations are critical - local database operations are minimal
- Multi-language support focuses on Malaysian Malay context