A comprehensive Laravel-based loan management system with integrated KYC (Know Your Customer) verification, built with modern web technologies.
- Loan Application & Processing - Complete loan lifecycle management
- Loan Categories - Flexible loan type configuration
- Repayment Tracking - Automated repayment scheduling and tracking
- Payment Processing - Integrated payment gateway support
- Document Management - Secure document upload and storage
- Analytics & Reporting - Comprehensive loan analytics and PDF reports
- Multi-Provider Integration - Support for multiple KYC verification providers
- Real-time Verification - Live status updates and progress tracking
- Document Verification - ID document and proof of address verification
- Admin Management - Complete admin interface for KYC oversight
- Bulk Operations - Mass approval/rejection capabilities
- Export Functionality - CSV export for compliance reporting
- Role-based Access Control - Admin, user, and staff roles
- Wallet System - Digital wallet for loan disbursements
- Transaction History - Complete transaction tracking
- Profile Management - User profile and KYC status management
- Modern UI/UX - Vue.js components with Tailwind CSS
- Responsive Design - Mobile-first responsive interface
- Real-time Updates - Live status updates and notifications
- API Integration - RESTful API for mobile app integration
- Security - Laravel Sanctum authentication and authorization
- Laravel 11 - PHP framework
- MySQL/PostgreSQL - Database
- Laravel Sanctum - API authentication
- Spatie Laravel Permission - Role-based access control
- Laravel Queue - Background job processing
- Vue.js 3 - Progressive JavaScript framework
- Tailwind CSS - Utility-first CSS framework
- Vite - Build tool and development server
- Axios - HTTP client for API calls
- Stripe - Payment processing
- Web3.php - Blockchain integration
- Larapex Charts - Data visualization
- DomPDF - PDF generation
- Laravel Excel - Excel import/export
- PHP >= 8.2
- Composer >= 2.0
- Node.js >= 18.0
- npm >= 8.0
- MySQL >= 8.0 or PostgreSQL >= 13.0
- Redis (optional, for caching and queues)
git clone <repository-url>
cd Loan_appcomposer installnpm installcp .env.example .env
php artisan key:generateEdit .env file with your database and service configurations:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=loan_app
DB_USERNAME=root
DB_PASSWORD=
STRIPE_KEY=your_stripe_publishable_key
STRIPE_SECRET=your_stripe_secret_key
KYC_PROVIDER_API_KEY=your_kyc_provider_keyphp artisan migrate
php artisan db:seednpm run build# Using Laravel Sail (Docker)
./vendor/bin/sail up
# Or using traditional methods
php artisan serve
npm run devLoan_app/
βββ app/
β βββ Http/Controllers/
β β βββ Admin/ # Admin controllers
β β βββ Api/ # API controllers
β β βββ Auth/ # Authentication controllers
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic services
β βββ Notifications/ # Email notifications
βββ resources/
β βββ js/components/ # Vue.js components
β βββ views/ # Blade templates
β βββ sass/ # Stylesheets
βββ routes/
β βββ web.php # Web routes
β βββ api.php # API routes
βββ database/
βββ migrations/ # Database migrations
βββ seeders/ # Database seeders
Configure KYC providers in config/kyc.php:
'providers' => [
'provider1' => [
'api_key' => env('KYC_PROVIDER1_API_KEY'),
'api_url' => env('KYC_PROVIDER1_API_URL'),
],
'provider2' => [
'api_key' => env('KYC_PROVIDER2_API_KEY'),
'api_url' => env('KYC_PROVIDER2_API_URL'),
],
],Configure payment providers in config/payment.php:
'stripe' => [
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
],The application includes several Vue.js components for enhanced user experience:
- KYCStatusCard - Real-time KYC status display
- KYCForm - Multi-step KYC verification form
- KYCProgress - Visual progress tracking
- KYCProviderSelector - Provider selection interface
See VUE_COMPONENTS.md for detailed component documentation.
- CSRF Protection - Cross-site request forgery protection
- SQL Injection Prevention - Eloquent ORM protection
- XSS Protection - Blade template escaping
- Authentication - Laravel Sanctum for API authentication
- Authorization - Role-based access control
- Input Validation - Comprehensive form validation
- Rate Limiting - API rate limiting protection
POST /api/auth/login
POST /api/auth/register
POST /api/auth/logoutGET /api/loans
POST /api/loans
GET /api/loans/{id}
PUT /api/loans/{id}
DELETE /api/loans/{id}GET /api/kyc/status
POST /api/kyc/start
POST /api/kyc/verify
GET /api/kyc/providers# Run PHP tests
php artisan test
# Run specific test suite
php artisan test --filter=KYCTest
# Run with coverage
php artisan test --coveragecomposer install --optimize-autoloader --no-dev
npm run build
php artisan config:cache
php artisan route:cache
php artisan view:cacheEnsure all production environment variables are set:
- Database credentials
- API keys for external services
- Mail configuration
- Queue configuration
- Cache configuration
- Laravel Logs - Application logs in
storage/logs/ - Queue Monitoring - Monitor background jobs
- Error Tracking - Comprehensive error logging
- Performance Monitoring - Application performance metrics
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the documentation in the
docs/folder - Review the Vue.js components documentation in
VUE_COMPONENTS.md
- Initial release with core loan management features
- KYC integration with multiple providers
- Vue.js frontend components
- Admin management interface
- API endpoints for mobile integration
Royal T - GitHub
Built with β€οΈ using Laravel and Vue.js