This project is the development of a new, modern website for the Bank of Azad Jammu & Kashmir. The primary goal is to create a user-friendly, secure, and technologically advanced online presence for the bank.
- Framework: Laravel 12 (PHP
^8.2) - Frontend: React (
^2.0.11via@inertiajs/react), TypeScript - UI Library: Inertia.js (
^2.0for Laravel,^2.0.11for React) - Styling: Tailwind CSS (default with Laravel 11+), Mobile Responsive Design
- Authentication: Native Laravel authentication
- Permissions:
spatie/laravel-permission(^6.18) - Query Building:
spatie/laravel-query-builder(^6.3) - Routing in JS: Tighten/Ziggy (
^2.4) - Database: Postgresql
- Deployment: (Specify your deployment environment, e.g., Docker, AWS, etc.)
- Enhance customer experience with a modern and intuitive interface.
- Provide comprehensive information about banking products and services.
- Ensure high levels of security and data protection.
- Improve operational efficiency through streamlined online processes.
- Leverage the latest web technologies for a robust and scalable platform.
- PHP:
^8.2 - Node.js:
^22.15.21(or latest LTS) - Package Managers: Composer, Bun
- Build Tool: Vite
- Linting: ESLint
- Code Formatting: Prettier
- Dev Tools: Laravel Tinker, Larastan, PHP CS Fixer, Pail, Pint, Sail
This comprehensive banking website includes the following key modules:
- Product Management: Complete product catalog with schemes and attributes
- Service Management: Banking services with detailed descriptions and attributes
- Branch Network: Branch locations with services offered
- Financial Reports: Annual reports, financial highlights, and downloadable documents
- Board & Management: Information about directors and management team
- News & Announcements: Latest updates and bank announcements
- Career Portal: Job opportunities and career information
- Customer Support: Contact forms and customer service information
- Multi-role Authentication: Admin, Manager, and User roles with permissions
- Search Functionality: Advanced search across all content
- File Management: Upload and manage documents, images, and reports
- Regional Management: Districts, divisions, and regional organization
- Content Management: Dynamic pages and menu management
- Mobile Responsive: Optimized for all device sizes
- SEO Optimized: Search engine friendly URLs and meta tags
Before you begin, ensure you have the following installed on your system:
- PHP:
^8.2with extensions (mbstring, xml, curl, bcmath, intl, gd, zip) - Node.js:
^22.15.21(LTS recommended) - Composer: Latest version
- Bun: Package manager (alternative to npm/yarn)
- PostgreSQL: Database server
- Git: Version control
Follow these steps to set up the project locally:
git clone <repository-url>
cd Genexiscomposer installbun install
# or alternatively
npm install# Copy the environment file
cp .env.example .env
# Generate application key
php artisan key:generateThe following environment variables must be configured in your .env file:
Basic Application Settings:
APP_NAME="Bank of AJK"
APP_ENV=local
APP_KEY=base64:your-generated-key
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=Asia/Karachi
APP_LOCALE=enDatabase Configuration:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=genexis_bank
DB_USERNAME=your_username
DB_PASSWORD=your_passwordBank Contact Information:
BANK_BRANCHES_COUNT=50
CONTACT_PHONE="+92.5822.924244"
CONTACT_EMAIL="info@bankajk.com"
CONTACT_ADDRESS="Head Office, Bank Square, Chattar Domel, Muzaffarabad, AJK, Pakistan"Marquee Text Content:
MARQUEE_ACHIEVEMENT_TEXT="Celebrating 25+ years of banking excellence"
MARQUEE_SERVICES_TEXT="Comprehensive banking solutions for everyone"
MARQUEE_SUPPORT_TEXT="24/7 customer support available"
MARQUEE_DIGITAL_TEXT="Digital banking made simple and secure"
MARQUEE_CONTACT_TEXT="Connect with us anytime, anywhere"
MARQUEE_NETWORK_TEXT="Nationwide branch network at your service"Social Media Links:
SOCIAL_FACEBOOK_URL="https://www.facebook.com/BAJKOfficial/"
SOCIAL_TWITTER_URL="https://x.com/BAJKOfficial"
SOCIAL_INSTAGRAM_URL="https://www.instagram.com/bajkofficial/"
SOCIAL_LINKEDIN_URL="https://www.linkedin.com/company/bank-of-azad-kashmir/"
SOCIAL_YOUTUBE_URL="https://www.youtube.com/channel/UCrHL1opwCxp_owjSivhA2iw"Mail Configuration:
MAIL_MAILER=smtp
MAIL_HOST=your-smtp-host
MAIL_PORT=587
MAIL_USERNAME=your-email
MAIL_PASSWORD=your-password
MAIL_FROM_ADDRESS="noreply@bankajk.com"
MAIL_FROM_NAME="${APP_NAME}"Optional: Loan Calculator Settings:
# Personal Loan
LOAN_RATE_PERSONAL=14.0
# Advance Salary Loan
LOAN_MIN_ADVANCE_SALARY=10000
LOAN_MAX_ADVANCE_SALARY=3000000
LOAN_TENURE_MIN_ADVANCE_SALARY=1
LOAN_TENURE_MAX_ADVANCE_SALARY=48
LOAN_RATE_SALARY=15.0
# Car Loan
LOAN_MIN_CAR=100000
LOAN_MAX_CAR=3000000
LOAN_TENURE_MIN_CAR=12
LOAN_TENURE_MAX_CAR=60
LOAN_RATE_CAR=12.5
# House Loan
LOAN_MIN_HOUSE=500000
LOAN_MAX_HOUSE=10000000
LOAN_TENURE_MIN_HOUSE=12
LOAN_TENURE_MAX_HOUSE=240
LOAN_RATE_HOUSE=11.5See the complete .env.example file for all available configuration options including cache, session, queue, and third-party service configurations.
The .env.example file includes over 100 environment variables organized into the following categories:
- Core Application: Basic Laravel settings, debug mode, timezone, locale
- Database: PostgreSQL, MySQL, SQLite configurations with connection pooling
- Authentication: User model, password reset, session timeout settings
- Cache & Session: Redis, Memcached, database-based caching and sessions
- Queue Management: Database, Redis, Beanstalkd, SQS queue configurations
- Mail Services: SMTP, Postmark, SES, Resend email providers
- File Storage: Local, S3, public disk configurations
- Logging: Stack, daily, Slack, Papertrail logging options
- Search Services: Algolia, Meilisearch, Typesense configurations
- Bank-Specific: Contact info, branch count, social media links, marquee text
- Loan Calculator: Interest rates, loan limits, tenure settings for various loan types
- Third-Party Services: AWS, Slack, social media integrations
- Performance: Redis clustering, connection pooling, cache prefixes
Configure your database in the .env file:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=genexis_bank
DB_USERNAME=your_username
DB_PASSWORD=your_passwordRun migrations and seeders:
# Run database migrations
php artisan migrate
# Seed the database with sample data
php artisan db:seed
# Create storage link for file uploads
php artisan storage:linkFor development:
# Start the development server with hot reload
bun run dev
# or
npm run devFor production:
# Build optimized assets
bun run build
# or
npm run build# Start Laravel development server
php artisan serveYour application will be available at http://localhost:8000
After seeding, you can login with:
- Admin: admin@example.com / password
This project includes several tools to maintain code quality:
# PHP Code Style (Laravel Pint)
./vendor/bin/pint
# PHP Static Analysis (Larastan)
./vendor/bin/phpstan analyse
# PHP Code Sniffer
./vendor/bin/phpcs
# JavaScript/TypeScript Linting
bun run lint
# or fix automatically
bun run lint:fix
# Format code with Prettier
bun run format
# Type checking
bun run types
# Run all checks
bun run ci# Run PHP tests with Pest
php artisan test
# Run specific test file
php artisan test tests/Feature/UserTest.php
# Run tests with coverage
php artisan test --coverage# Create a new migration
php artisan make:migration create_table_name
# Create a new model with migration
php artisan make:model ModelName -m
# Create a factory
php artisan make:factory ModelNameFactory
# Create a seeder
php artisan make:seeder TableNameSeeder
# Fresh migration with seeding
php artisan migrate:fresh --seed# Create a controller
php artisan make:controller ControllerName
# Create a request class
php artisan make:request RequestName
# Create a resource
php artisan make:resource ResourceName
# Create a policy
php artisan make:policy PolicyName
# Create a service class
php artisan make:service ServiceName
# Create a view
php artisan make:view view-nameapp/
├── Http/
│ ├── Controllers/ # Application controllers
│ ├── Middleware/ # Custom middleware
│ └── Requests/ # Form request validation
├── Models/ # Eloquent models
├── Policies/ # Authorization policies
├── Services/ # Business logic services
└── Traits/ # Reusable traits
resources/
├── js/ # React components and TypeScript
├── css/ # Stylesheets
└── views/ # Blade templates
routes/
├── web.php # Web routes
├── auth.php # Authentication routes
├── settings.php # Settings routes
└── console.php # Console commands
We welcome contributions to this project! Please follow these guidelines:
- Fork the repository and create your feature branch from
main - Follow the coding standards outlined below
- Write tests for any new functionality
- Update documentation as needed
- Follow PSR-12 coding standards
- Use Laravel's naming conventions:
- Models:
PascalCase(e.g.,BankService) - Controllers:
PascalCase+Controller(e.g.,BankServiceController) - Methods:
camelCase(e.g.,getUserData) - Variables:
camelCase(e.g.,$userData)
- Models:
- Use type hints and return types where possible
- Write meaningful commit messages
- Use Laravel's built-in features (Eloquent, Collections, etc.)
- Follow React and TypeScript best practices
- Use functional components with hooks
- Implement proper TypeScript typing
- Follow Tailwind CSS utility-first approach
- Use Radix UI components when available
- Maintain responsive design principles
- Use descriptive migration names
- Follow alphabetical order for pivot tables (e.g.,
project_rolenotrole_project) - Include proper indexes and foreign key constraints
- Use meaningful column names
- Create a Pull Request with a clear title and description
- Link any related issues in the PR description
- Ensure all tests pass and code quality checks are green
- Request review from at least one maintainer
- Address feedback promptly and professionally
When reporting bugs, please include:
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (OS, PHP version, browser, etc.)
- Screenshots or error messages if applicable
For new features:
- Describe the problem you're trying to solve
- Propose a solution with implementation details
- Consider backward compatibility
- Discuss performance implications
- Follow the standard Getting Started guide above
- Set up pre-commit hooks:
# Install pre-commit hooks composer install --dev - Run tests before submitting:
php artisan test bun run ci
-
Optimize for production:
composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache php artisan view:cache bun run build
-
Set proper permissions:
chmod -R 755 storage bootstrap/cache
-
Configure web server (Nginx/Apache) to point to the
publicdirectory
Key production environment variables:
Application Settings:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com
APP_KEY=base64:your-production-key
APP_TIMEZONE=Asia/KarachiDatabase Configuration:
DB_CONNECTION=pgsql
DB_HOST=your-db-host
DB_DATABASE=production_db
DB_USERNAME=production_user
DB_PASSWORD=secure_passwordMail Configuration:
MAIL_MAILER=smtp
MAIL_HOST=your-smtp-host
MAIL_PORT=587
MAIL_USERNAME=your-email
MAIL_PASSWORD=your-password
MAIL_FROM_ADDRESS="noreply@bankajk.com"
MAIL_FROM_NAME="Bank of AJK"Performance & Caching:
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=your-redis-host
REDIS_PASSWORD=your-redis-passwordFile Storage:
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your-aws-key
AWS_SECRET_ACCESS_KEY=your-aws-secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket-nameBank Configuration:
BANK_BRANCHES_COUNT=50
CONTACT_PHONE="+92.5822.924244"
CONTACT_EMAIL="info@bankajk.com"
CONTACT_ADDRESS="Head Office, Bank Square, Chattar Domel, Muzaffarabad, AJK, Pakistan"For a complete list of all environment variables, refer to the .env.example file which contains over 100 configuration options for various Laravel features, third-party services, and bank-specific settings.
- Keep dependencies updated regularly
- Use environment variables for sensitive configuration
- Implement proper validation on all user inputs
- Follow Laravel security best practices
- Regular security audits with
composer audit
For support and questions:
- Documentation: Check this README and Laravel documentation
- Issues: Create a GitHub issue for bugs or feature requests
- Email: [your-support-email@domain.com]
This project is proprietary software developed for the Bank of Azad Jammu & Kashmir. All rights reserved.
- Initial release with core banking features
- React + TypeScript frontend
- Laravel 12 backend
- PostgreSQL database
- Spatie packages integration
This document provides an overview of key application pages based on the provided snapshots.
Key Features:
- Multiple contact methods: Call Center, Email Support, Operations, HR/MD.
- "Send us a Message" form with fields: Name, E-Mail, Phone, District, Tehsil, Place, Category, Subject, Message.
- Head Office address and contact details.
- Business Hours information.
- Link to Branch Locator.
Note: To view these images, please ensure you have saved your snapshot images as:
contact_us_page.pngbanking_services_page.pngand placed them into thepublic/screenshots/directory. The Markdown file references them using relative paths likepublic/screenshots/contact_us_page.png.
This README was last updated on June 28, 2025.

