Skip to content

Royal07T/Loan_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏦 Loan Management System (LMS)

A comprehensive Laravel-based loan management system with integrated KYC (Know Your Customer) verification, built with modern web technologies.

πŸš€ Features

Core Loan Management

  • 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

KYC (Know Your Customer) System

  • 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

User Management

  • 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

Technical Features

  • 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

πŸ› οΈ Technology Stack

Backend

  • Laravel 11 - PHP framework
  • MySQL/PostgreSQL - Database
  • Laravel Sanctum - API authentication
  • Spatie Laravel Permission - Role-based access control
  • Laravel Queue - Background job processing

Frontend

  • Vue.js 3 - Progressive JavaScript framework
  • Tailwind CSS - Utility-first CSS framework
  • Vite - Build tool and development server
  • Axios - HTTP client for API calls

Integrations

  • Stripe - Payment processing
  • Web3.php - Blockchain integration
  • Larapex Charts - Data visualization
  • DomPDF - PDF generation
  • Laravel Excel - Excel import/export

πŸ“‹ Prerequisites

  • 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)

πŸš€ Installation

1. Clone the Repository

git clone <repository-url>
cd Loan_app

2. Install PHP Dependencies

composer install

3. Install Node.js Dependencies

npm install

4. Environment Setup

cp .env.example .env
php artisan key:generate

5. Configure Environment Variables

Edit .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_key

6. Database Setup

php artisan migrate
php artisan db:seed

7. Build Assets

npm run build

8. Start Development Server

# Using Laravel Sail (Docker)
./vendor/bin/sail up

# Or using traditional methods
php artisan serve
npm run dev

πŸ—οΈ Project Structure

Loan_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

πŸ”§ Configuration

KYC Providers

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'),
    ],
],

Payment Gateways

Configure payment providers in config/payment.php:

'stripe' => [
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],

πŸ“± Vue.js Components

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.

πŸ” Security Features

  • 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

πŸ“Š API Documentation

Authentication

POST /api/auth/login
POST /api/auth/register
POST /api/auth/logout

Loans

GET    /api/loans
POST   /api/loans
GET    /api/loans/{id}
PUT    /api/loans/{id}
DELETE /api/loans/{id}

KYC

GET    /api/kyc/status
POST   /api/kyc/start
POST   /api/kyc/verify
GET    /api/kyc/providers

πŸ§ͺ Testing

# Run PHP tests
php artisan test

# Run specific test suite
php artisan test --filter=KYCTest

# Run with coverage
php artisan test --coverage

πŸš€ Deployment

Production Build

composer install --optimize-autoloader --no-dev
npm run build
php artisan config:cache
php artisan route:cache
php artisan view:cache

Environment Variables

Ensure all production environment variables are set:

  • Database credentials
  • API keys for external services
  • Mail configuration
  • Queue configuration
  • Cache configuration

πŸ“ˆ Monitoring & Logging

  • Laravel Logs - Application logs in storage/logs/
  • Queue Monitoring - Monitor background jobs
  • Error Tracking - Comprehensive error logging
  • Performance Monitoring - Application performance metrics

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

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

πŸ”„ Changelog

Version 1.0.0

  • Initial release with core loan management features
  • KYC integration with multiple providers
  • Vue.js frontend components
  • Admin management interface
  • API endpoints for mobile integration

πŸ‘¨β€πŸ’» Author

Royal T - GitHub


Built with ❀️ using Laravel and Vue.js

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors