##### NULLPHPSCRIPT.COM

- By : Viserlab
- Email : support@viserlab.com

#### Introduction

Welcome to the Digital Banking Application! This comprehensive application allows you to manage digital banking operations efficiently, with features like DPS, FDR, loan management, multi-bank transfers, and more. This documentation will guide you through the installation, configuration, and use of the application.

###### Features Overview

- Deposit Money
- Withdraw Money
- FDR Schemes Management
- DPS Schemes Management
- Loan Management
- Own Bank Transfers
- Other Bank Transfers
- Wire Transfers
- Mobile Top Up
- Branch Management
- Co Admin / Staff Management
- Referral System
- Frontend/Website Content Management
- Multilingual Support

The documentation will help to understand the total system and we have tried to summarize the total.

If needed, we will update this script continuously and come with new features and security patches. We will try to give the best user experience to all of our clients.

Thank you for purchasing ViserBank. If you have any questions or queries that are not answered in this document, please feel free to contact us via email. We will try to respond to you as soon as possible. Thank you so much.

#### Server Requirements

- PHP Version 8.3
- MySQL Version 8.0+ or MariaDB version 10.6+
- BCMath PHP Extension
- Ctype PHP Extension
- cURL PHP Extension
- DOM PHP Extension
- Fileinfo PHP Extension
- GD PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PCRE PHP Extension
- PDO PHP Extension
- pdo_mysql PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Filter PHP Extension
- Hash PHP Extension
- Session PHP Extension
- Zip PHP Extension
- allow_url_fopen()
- file_get_contents()

#### Server FAQ

Do I need VPS or a Dedicated server to run this system?

No, You can run this system in a shared host as well and it will run smoothly. But if you have much traffic, you may need to upgrade your server/hosting. Our codes are highly optimized to ensure the best possible performance.

Which hosting provider should I choose for this? Do you have any suggestions?

You can choose any hosting provider that provides cPanel-based hosting. cPanel is not a must, but we recommend you to have cPanel-based hosting.

I don't have cPanel, What should I do?

Nothing to worry about, Our system will work with any control panel but cPanel is easy to manage, for that we recommend cPanel-based hosting. Also, Our free Support is limited to cPanel-based hosting only.

Do you provide hosting as well?

Yes, We do. We can provide a complete solution for your hosting. We can provide budget shared hosting, premium shared hosting, VPS, Dedicated servers, and Cluster from various geolocation. Please contact us for more details.

#### Installation Guide

Installation is very easy with our Easy Installer. You can install yourself simply in few steps without any coding knowledge. We develop our installation system to make the installation process flawless and easy.

###### Installation Steps:

1. Upload File: Upload the whole file to the server you have downloaded from download after purchase.
2. Unzip File: Extract/Unzip the file and move all files in the `Files` folder to the main folder(where you want to install it). Make sure you have moved the `index.php` and `.htaccess` as well.
3. Browse Site: Now please browse http://`your-site-url`/install/index.php and follow the process. Your system should be ready to use.

If you are still unable to install the system, please contact us. we offer free installation in cPanel-based hosting.

Admin Login:

Admin login URL is: http://`your-site-url`/admin
- Username : [as_you_set_on_installation]
- Password : [as_you_set_on_installation]

#### Activation

After installing the system you need to activate it. When you visit the system, you will be able to see the activation page. Just provide this information to activate and run your system. Your provided information will send to ViserLab server to verify and we never collect any sensitive or confidential data.

- Purchase Code: To get purchase code Click Here.

- Envato Username: Your Envato username with which you bought system.

- Email: Provide your email for further communication.

`The purchase code(license) is for one website or domain only. Please activate the license into the correct domain(URL) to avoid any unwanted issues in the future.`

#### Folder Structure

After installation, There will be two folders and two files will be in your main folder.

- assets
- core
- .htaccess
- index.php

- On the "assets" folder, We keep all kinds of assets like CSS, JS, Images. If you want To edit or change anything over CSS or js, please have a look at this folder.

- On the "core" folder, We keep the core of Laravel and we maintain full MVC structure on this project.

#### Account Management

The Account Management feature allows admins to oversee and manage all accounts within the digital banking platform. Admins have access to various tools to view, edit, and manage user accounts effectively.

##### How Accounts Will Be Added to the System

Account holders can be added to the system either by signing up through the website or by an Account Officer at a branch.

###### Configure Registration Module

To Singing Up / Online Registration the Online User Registration, and to open account frOpening an Account from a Branch the Branch User Registration module must be enabled Enable these modules by following steps:

- Access System Configuration:
  - Navigate to the Settings menu.
  - Select System Configuration.
- Enable Online User Registration:
  - Look for the Online User Registration & Branch User Registration modules in the list of available modules.
  - Ensure the modules are enabled by toggling the switch to ON.
  - Click the Submit button to save the changes.

###### Singing Up / Online Registration

Any visitor to the website can become an account holder by signing up online. The process involves the following steps:

- Step 1: Fill Up Signup Form
  - Users need to provide their First Name, Last Name, Email Address, and Password
  - The system may enforce strong password rules if the Force Secure Password option is enabled in the System Configuration Settings.
  - Users must agree to the platform's policies by checking a checkbox (this option can be enabled or disabled from the system configuration).
- Step 2: Fill Up Profile Completion Form

  Users must provide additional details such as a unique username, country, mobile number, photograph, address, state, zip code, and city.

  Upon completing the profile, users will be redirected to their dashboard within the user panel.

###### Opening an Account from a Branch

Anyone can open an account directly at a branch. An account officer can use the Open Account menu in the branch staff panel to create a new account. After submitting the form, the username and password will be sent to the user's email.

###### Social Login Options

The platform supports social logins for Google, Facebook, and LinkedIn, simplifying user registration and login.

1. Access Social Login Settings:
   - Navigate to Settings.
   - Select Social Login Settings.
2. Configure Social Logins:
   - Click Configure to enter API credentials.
   - Click Help for setup instructions.
   - Click Enable/Disable to activate the social login option.

##### KYC Setting

The KYC (Know Your Customer) Setting module allows administrators to create and manage KYC forms required for verifying the identity of users. This process is essential for compliance with regulatory standards and ensuring the security of the banking platform.

###### Create KYC Form

To create a KYC form, follow these steps:

1. Access the KYC Settings:
   - Navigate to the Settings menu in the admin panel.
   - Select KYC Setting from the options.
2. Create or Edit KYC Form:
   - Once in the KYC Setting, you'll see options to create a new KYC form or edit an existing one.
   - Click on the Create New Form button if you wish to create a new form.
   - Add the necessary fields to the form, such as: Full Name, Date of Birth, Address, Identification Number (e.g., Passport, National ID), Upload Document (e.g., ID Proof, Address Proof)
   - Each field can be set as required or optional, depending on your compliance needs.
3. Save the Form

###### Enabling KYC Verification Module

Before the KYC process can be enforced, the KYC Verification module must be enabled, if disabled the user will be kyc verified by default.

- Access System Configuration:
  - Navigate to the Settings menu.
  - Select System Configuration.
- Enable KYC Verification:
  - Look for the KYC Verification module in the list of available modules.
  - Ensure the module is enabled by toggling the switch to ON.
  - Click the Submit button to save the changes.

###### KYC Verification Process

Once the KYC form is created and the module is enabled:

- Users who open an account after the setting is enabled will be marked as KYC Unverified.
- Unverified users will have restricted access to certain features, including withdrawing money, opening FDR, opening DPS, applying for loans, transferring money, and sending mobile top-ups
- Users will see a link on their dashboard to verify KYC
- After a user submits the KYC form, the admin can review it in the KYC Pending submenu under the Manage Accounts menu.

##### Managing Accounts

In the Manage Accounts menu, admins have access to various submenus that categorize user accounts based on their status and verification levels. Each submenu contains a list of accounts displayed in a table view, making it easy to locate and manage specific user accounts.

###### Submenus Overview:

- Profile Incomplete: Accounts where users have not yet completed their profile details.
- Profile Completed: Accounts with fully completed profiles.
- Active: Accounts that are currently active and in good standing.
- Banned: Accounts that have been banned by an admin.
- Email Unverified: Accounts where the email address has not been verified.
- Mobile Unverified: Accounts where the mobile number has not been verified.
- KYC Unverified: Accounts that have not completed the KYC (Know Your Customer) verification.
- Email Verified: Accounts with verified email addresses.
- Mobile Verified: Accounts with verified mobile numbers.
- KYC Pending: Accounts where the KYC data is submitted but KYC verification is still pending.
- All Accounts: A comprehensive list of all accounts within the system.
- Send Notification: Allows admins to send notifications to selected accounts.

###### Account Actions

For each user listed in these submenus, admins can perform the following actions:

- View Details: Access comprehensive information about the user, including balance, deposits, withdrawals, and additional user insights.
- View KYC Data: Review and manage the accounts's KYC data.
- Login as User: Temporarily log in as the user to troubleshoot issues or assist with account management.
- Login History: View the user's login history and monitor account activity.
- Send Notification: Send a direct notification to the user.
- View All Notifications: Review all notifications sent to the user.

###### How to Update Account Information

1. Access the Account Details: Navigate to the View Details menu for the selected account.
2. Edit Information: Admins can update user information including:
   - First Name
   - Last Name
   - Email Address
   - Mobile Number
   - City
   - State
   - Zip/Postal Code
   - Country
   - Address
   - Email Verification Status
   - Mobile Verification Status
   - 2FA Verification Status
   - KYC Verification Status
3. Save Changes: After editing the details, ensure to save the changes to update the user's information.

###### How to Approve KYC Verification

1. Access KYC Data: Navigate to the View KYC Data option for the selected account.
2. Review Documents: Carefully review the KYC documents submitted by the user.
3. Approve or Reject: Admins can either approve the KYC verification or reject it if the documents are not satisfactory.

Note: From the KYC Pending menu you will get accounts that are waiting for KYC approval

###### Add / Subtract Account Balance

1. Access Account Details:: Navigate to the View Details option for the selected account.
2. Adjust Balance: Use the options to either ADD Balance to increase the fund or Sub Balance to decrease the funds from the user's account.

###### How to Ban/Unban an Account

1. Search for the User: Use the search function in the Accounts List to find the user.
2. Ban Account: Click the Ban Account button to temporarily suspend the user's account. The user will be unable to access his Account Panel.
3. Unban Account: To reactivate the account, click the Unban Account button.

#### Referral Settings

The Referral Settings module allows administrators to configure and manage the referral program within the platform. This feature incentivizes users to refer others by offering commissions based on the deposits made by the referred users.

###### Referral Settings Form:

1. Commission Count: This field determines the number of times referrers will receive a referral commission from a single referee. Admins can set a specific number, limiting how many times a commission is credited for repeated deposits from the same referee.
2. Number of Levels: After specifying the number of levels in this field, admins can define the percentage of the deposit amount that will be given as a bonus to the referrer for each level. For example, if set to three levels, a referrer could receive a percentage commission for deposits made by referees up to three levels deep in the referral chain.

###### Enabling the Referral System:

1. Access System Configuration:
   - Navigate to the Settings menu.
   - Select System Configuration.
2. Enable the Referral Module:
   - Find the "System Referral" module in the list.
   - Toggle the switch to ON.
   - Click the Submit button to activate the referral system.

###### How the Referral System Works:

1. Sharing Referral Links:
   - Users can share their unique referral links with potential new users. User will get the referral link from user dashboard.
   - When someone registers using this link, the system automatically designates them as the referee, and the user who shared the link becomes the referrer.
2. Direct Referral Entry by Branch Staff:
   - Branch staff have the option to manually enter the referrer’s account number when opening a new account for a user. This action assigns the referrer directly.
3. Earning Referral Commissions:
   - When a referee deposits money, a percentage of the deposit, as configured by the admin, is credited to the referrer’s balance.
   - This process can occur multiple times based on the "Commission Count" setting, allowing referrers to benefit from repeated deposits by their referees.

This system encourages user growth by rewarding active participants who refer others to the platform, creating a sustainable and scalable method for expanding the user base.

###### On This Article

#### Admin Staff Management

The Admin Staff Management feature allows super admins to manage staff members by assigning them roles and permissions within the digital banking platform. This feature provides flexibility in defining the responsibilities of each staff member by customizing their access levels.

##### How to Add a Role & Set Permissions

1. Navigate to the Manage Admin Staff Menu:
   - Go to the Admin Staff section by selecting it from the main menu.
   - Click on the Roles tab at the top of the screen.
2. Add a New Role:
   - Click the Add New button at the top of the roles list.
   - In the form that appears, enter the Role Name.
3. Set Permissions:
   - You'll see a list of permissions grouped by modules. These may include options like Manage Accounts, Deposits, Withdrawals, FDR, DPS etc.
   - Select the checkboxes next to the permissions you wish to assign to the role.
4. Save the Role:
   - Once you've set the necessary permissions, click Save to create the role.

##### How to Add an Admin Staff

1. Navigate to the Staff Tab:
   - In the Manage Admin Staff section, ensure you are in the Staff tab, which is selected by default.
2. Add a New Role:
   - At the top of the Staff list, click the Add New button to add a new staff member.
3. Fill in Staff Details::
   - Name: Enter the full name of the staff member.
   - Username: Provide a unique username for the staff member.
   - Email: Input the staff member's email address.
   - Role: Select the role for this staff member from the dropdown menu.
   - Password: Enter a password or click the Generate Password button to create one automatically.
4. Save the Staff Member:
   - Click the Submit button to add the new staff member to the system. They will now appear in the Staff list with the assigned role and permissions.

##### Managing Existing Staff

1. Editing Staff Details:
   - In the Staff tab, locate the staff member you wish to edit.
   - Click the Edit button next to the staff member's name.
   - Update their details or role as necessary.
   - Click Save to apply the changes.
2. Banning Staff:
   - To restrict a staff member’s access, click the Ban button next to their name in the Staff list.
   - Confirm the action to finalize the ban. The staff member will no longer have access to the system.
3. Logging in as Staff:
   - For troubleshooting or assistance, click the Login as Staff button next to the staff member’s name. This allows you to temporarily log in as that staff member and perform actions on their behalf.

###### On This Article

#### Branch Management

The Branch Management feature enables admins to manage the branches of the digital banking platform and assign staff members to these branches. The feature is divided into two entities: Branches and Branch Staff. This documentation provides a comprehensive guide on how to manage these entities effectively.

##### Managing Branches

Branches serve as the physical locations where account holders can deposit funds, withdraw money, and open new accounts.

###### How to Add a New Branch

1. Navigate to the Manage Branches Menu:
   - Go to the Settings menu.
   - Search for "Branch" and click on Manage Branches.
2. Access the Add New Branch Form:
   - You will see a list of existing branches (if any).
   - To add a new branch, click the Add New button at the top of the list.
3. Fill in Branch Details:
   Complete the form with the following required fields:
   - Branch Name: The official name of the branch. `(Required)`
   - Branch Code: A unique identifier for the branch. `(Required)`
   - Routing Number: The branch's routing number for transactions. (Optional)
   - SWIFT Code: The SWIFT code for international transactions. (Optional)
   - Phone: The branch's phone number. (Optional)
   - Mobile: The branch's mobile number. (Optional)
   - Email: The branch's email address. (Optional)
   - Fax: The branch's fax number (optional). (Optional)
   - Address: The physical address of the branch. `(Required)`
   - Google Map Location: A link or embedded map showing the branch location. (Optional)
4. Save the Branch:
   - After filling in all necessary details, click the Submit button to add the branch to the system.

###### Viewing and Managing Existing Branches

- Branch List:
  - Once branches are added, they will be displayed in a list under the Manage Branches section.
  - Each branch entry in the list will have options to:
    - View Details: See detailed information about the branch and may update if needed.
    - Enable/Disable: Restrict or restore the branch's operations.

Account Officers have the authority to open new accounts, manage deposits, process withdrawals, and view detailed lists of accounts, deposits, and withdrawals under their supervision. Branch Managers oversee these operations and have the ability to manage multiple branches, ensuring efficient branch performance and compliance with operational standards.

##### Managing Branch Staff

###### How to Add a New Branch Staff Member

1. Navigate to the Manage Branch Staff Menu:
2. Access the Add New Staff Form:
   - You will see a list of existing branch staff (if any).
   - To add a new staff member, click the Add New button at the top of the list.
3. Fill in Staff Details:
   Complete the form with the following fields::
   - Name: The full name of the staff member. `(Required)`
   - Mobile: The staff member's mobile number. `(Required)`
   - Email: The staff member's email address. `(Required)`
   - Password: A password for the staff member's account. `(Required)`
   - Upload Resume/CV: An optional upload field for the staff member's resume or CV. (Optional)
   - Designation: Select either Account Officer or Branch Manager from the dropdown. `(Required)`
   - Branch: Select the branch to which the staff member will be assigned. `(Required)`
   - Address: The physical address of the staff member. `(Required)`
4. Save the Staff Member:
   - After completing the form, click Submit to add the new staff member to the system.

###### Viewing and Managing Existing Branch Staff

- Staff List:
  - The Manage Branch Staff section will display a list of all staff members.
  - Each staff entry will have options to:
    - View Details: See detailed information about the branch staff and may update if needed.
    - Ban / Unban: Restrict or restore the staff member's access.
    - Login as Staff: Temporarily log in as the staff member for troubleshooting or assistance.

###### Roles and Responsibilities

- Account Officer:
  - Can only be assigned to one branch.
  - Responsible for opening new accounts, managing deposits, and withdrawals, and viewing account lists.
- Branch Manager:
  - Can be assigned to multiple branches.
  - Oversees branch operations within their assigned branches.

###### On This Article

#### Deposit Management

The Deposit Module allows administrators to manage and configure deposit methods within the digital banking platform. It supports both automatic and manual payment gateways, providing flexibility for users to deposit money through various channels.

#### Automatic Gateways

The system integrates with over 30 automatic payment gateways, enabling seamless transactions for users.

##### How to Activate an Automatic Gateway

Administrators can activate these gateways by following the steps below:

1. Access the Payment Gateways Settings:
   - Navigate to the Settings menu.
   - Search for "Gateways" and select Payment Gateways.
2. Access the Payment Gateways List:
   - Ensure you are in the Automatic Gateway tab, which is selected by default. See the list of available gateways.
   - Review the list of available gateways.
   - Click on the Edit button of the gateway you wish to activate.
3. Provide Gateway Credentials:
   - Enter the necessary credentials, such as API keys, merchant IDs, etc.
4. Upload Gateway Logo
5. Configure Currencies:
   - Add supported currencies by selecting from the provided list.
   - Configure each currency with the following options:
     - Name: Enter the Name (e.g., Stripe USD, Stripe EUR).
     - Range:Set the minimum and maximum transaction limits.
     - Charge: Configure the fixed fee and percentage-based charge. The charge will be calculated as `Fixed Charge + Percent Charge`.
     - Currency Symbol: Define the symbol for the currency (e.g., $, €, £).
     - Rate: Set the exchange rate relative to the site currency (configured in General Settings).
6. Save the Configuration:
   - Once all required fields are completed, click Submit to activate the gateway.

##### Enable/Disable Automatic Gateways

Administrators have the ability to enable or disable automatic gateways as needed. This feature allows for greater control over which payment methods are available to users.

1. Access the Payment Gateways List
   - Navigate to the Settings menu.
   - Search for "Gateways" and select Payment Gateways.
   - Ensure you are in the Automatic Gateway tab, where the list of available gateways is displayed.
2. Enable/Disable a Gateway
   - In the list of gateways, each entry will have Enable/Disable button.
   - To disable a gateway, click the Disable button.
   - To re-enable a gateway, click the Enable button.

##### Manual Gateways

###### What is Manual Gateway?

Manual gateways allow users to make deposits through methods such as bank transfers, which are processed manually by the administrator.

###### How to Add a New Manual Gateway

Administrators can activate these gateways by following the steps below:

1. Access the Manual Gateways Settings:
   - Navigate to the Settings menu.
   - Search for "Gateways" and select Payment Gateways.
2. Access the Payment Gateways List:
   - Select the Manual Gateway tab, Automatic Gateway is selected by default.
   - Click on the Add New Button to add a new manual gateway.
3. Provide Gateway Information:
   - Fill in the required fields::
     - Upload Logo: Upload a logo for the method
     - Gateway Name: Enter the Name (e.g., Bank Transfer).
     - Currency: Enter the Name (e.g., USD, EUR).
     - Range:Set the minimum and maximum transaction limits.
     - Charge: Configure the fixed fee and percentage-based charge. The charge will be calculated as `Fixed Charge + Percent Charge`.
     - Deposit Instructions: Provide detailed instructions for the user.
     - Dynamic Form: Create a form for users to complete during the deposit process.
4. Save the Configuration:
   - Once the form is filled out, click Submit to add the manual gateway to the system.

##### Enable/Disable Manual Gateways

Administrators have the ability to enable or disable manual gateways as needed. This feature allows for greater control over which payment methods are available to users.

1. Access the Payment Gateways List
   - Navigate to the Settings menu.
   - Search for "Gateways" and select Payment Gateways.
   - Ensure you are in the Manual Gateway tab, where the list of available gateways is displayed.
2. Enable/Disable a Gateway
   - In the list of gateways, each entry will have Enable/Disable button.
   - To disable a gateway, click the Disable button.
   - To re-enable a gateway, click the Enable button.

#### Manage Users Deposits

This option provides administrators with a comprehensive interface to manage user deposits. This includes viewing and processing deposits through various stages, such as pending, approved, successful, and rejected.

##### View Deposits

- Navigate to the Deposits menu to view all user deposits, both automatic and manual.
- In the Deposits menu, you will find several submenus that categorize deposits based on their status:
  - Pending Deposits: Deposits awaiting approval.
  - Approved Deposits: Deposits that have been approved.
  - Successful Deposits: Deposits that have been successfully processed and completed.
  - Rejected Deposits: Deposits that have been rejected due to fraud or other reasons.
  - All Deposits: A comprehensive list of all deposits, regardless of status.

##### Viewing Deposit Details

- In any of the deposit submenus, each deposit entry will have a Details button.
- Click on the Details button to access the detailed view of the deposit.

##### Approve / Reject Pending Deposits

1. In the deposit's detail view, if the deposit is in a pending state, the administrator will have the option to Approve or Reject the deposit.
   - Approve: Confirms the deposit, moving it to the successful status
   - Reject: Denies the deposit, moving it to the rejected status. This is typically done if the deposit is deemed fraudulent or does not meet the required criteria.
2. Once the action is taken, the deposit's status will be updated accordingly, and the user will be notified if notifications are configured in the system.

This process ensures that all deposits are thoroughly reviewed and validated, maintaining the integrity and security of the financial transactions on the platform.

###### On This Article

#### Withdrawal Management

The Withdrawal Module allows administrators to manage and process user withdrawal requests manually within the digital banking platform. Unlike the Deposit Module, which supports automatic payment gateways, the Withdrawal Module is entirely manual, providing a high level of control and verification over user withdrawals.

#### Withdrawal Methods

Since the platform does not support automatic withdrawal methods, administrators are responsible for manually setting up and managing all withdrawal methods. These methods can include bank transfers, checks, or any other manual payment process preferred by the institution.

##### How to Add a New Withdrawal Method

Administrators can add new withdrawal methods by following these steps:

1. Navigate to the Withdrawal Methods Menu:
   - Go to the Settings menu.
   - Search for "Withdrawal Methods" and click on Manage Withdrawal Methods.
2. Access the Add New Withdrawal Method Form:
   - Click on the "Add New" button at the top of the list of existing withdrawal methods (if any).
3. Fill in Method Details:

   Provide the following required fields:

   - Upload Logo: Upload the logo of the withdrawal method.
   - Name: The name of the withdrawal method (e.g., Bank Transfer).
   - Currency: Select the currency for the withdrawal method.
   - Rate: Define the exchange rate for the currency with the site currency.
   - Minimum/Maximum Limit: Set the transaction limits.
   - Fixed Charge: Set a fixed fee for withdrawals.
   - Percent Charge: Set a percentage-based charge for withdrawals.
   - Withdraw Instruction: Provide any special instructions for the user.
   - Dynamic Form: Create a form for users to complete during the withdrawal process.
4. Save the Method:
Click "Submit" to add the new withdrawal method.

#### Manage Users Withdrawals

This option provides administrators with a comprehensive interface to manage user withdrawals. This includes viewing and processing withdrawals through various stages, such as pending, approved, and rejected.

###### View Withdrawals

- Navigate to the Withdrawals menu to view all user withdrawals.
- In the Withdrawals menu, you will find several submenus that categorize withdrawals based on their status:
  - Pending Withdrawals: Withdrawals awaiting approval.
  - Approved Withdrawals: Withdrawals that have been approved.
  - Rejected Withdrawals: Withdrawals that have been rejected due to fraud or other reasons.
  - All Withdrawals: A comprehensive list of all withdrawals, regardless of status.

###### Viewing Withdrawal Details

- In any of the withdrawal submenus, each withdrawal entry will have a Details button.
- Click on the Details button to access the detailed view of the withdrawal.

##### Approve / Reject Pending Withdrawals

1. In the withdrawal's detail view, if the withdrawal is in a pending state, the administrator will have the option to Approve or Reject the withdrawal.
   - Approve: Confirms the withdrawal, moving it to the approved status
   - Reject: Denies the withdrawal, moving it to the rejected status. This is typically done if the withdrawal is deemed fraudulent or does not meet the required criteria. The amount will be refunded to the user's wallet, as the withdrawal amount is deducted upon the initiation of the request.
2. Once the action is taken, the withdrawal's status will be updated accordingly, and the user will be notified if notifications are configured in the system.

###### On This Article

#### Transfer Management

The Money Transfer Management Module allows users to transfer funds within the banking system. It supports three types of transfers: Own Bank Transfer, Other Bank Transfer, and Wire Transfer. Each transfer type has its own set of rules and configurations, offering flexibility while ensuring security and compliance.

##### Own Bank Transfer

Own Bank Transfer allows users to transfer funds to other accounts of your bank. This process requires the user to add beneficiaries before making transfers.

###### Own Bank Configuration

Administrators can configure Own Bank Transfer by following these steps:

1. General Setting Configuration
   - Go to the Settings menu.
   - Select on General Setting.
   - Review and configure the following fields under the Transfer Limits within {YOUR_BANK_NAME} and Transfer Charges within {YOUR_BANK_NAME} sections:
     - Minimum Limit: The minimum amount a user can transfer per transaction.
     - Daily Limit: The maximum amount that can be transferred in a calendar day.
     - Monthly Limit: The maximum amount that can be transferred in a calendar month.
     - Fixed Charge: The fixed fee applied to each transfer.
     - Percent Charge: A percentage-based fee applied to each transfer.
2. Enable Own Bank Transfer Module from System Configuration
   - Go to the Settings menu.
   - Select on System Configuration
   - Ensure that the Own Bank Transfer module is enabled.
   - Click the Submit button to save the changes.

###### Adding Beneficiaries

To transfer money within the bank, users must first add beneficiaries.

1. Navigate to the Transfer menu.
2. The Transfer History table will be displayed. Select the Within {bankName} option from the top.
3. The list of existing beneficiaries will be displayed. Select Manage Beneficiaries from the top.
4. To add a new beneficiary, click on the Add New button and fill in the required fields:
   - Account Number
   - Username
   - Short Name

###### Transfer Process

Once beneficiaries are added, users can transfer money to them by selecting the desired beneficiary from the Within {bankName} page and completing the transfer process. The amount will be directly credited to the recipient's account.

##### Other Bank Transfer

Other Bank Transfer allows users to transfer funds to accounts in other banks. This process is entirely manual, requiring admin approval and execution.

###### Adding Other Banks

Admins must first add other banks to the system before users can transfer funds to them:

1. Navigate to the Settings Menu:
   - Go to the Admin panel.
   - If any existing banks are present, they will be displayed in the Existing Other Banks list.
2. To add a new bank, click on the Add New button and fill in the form with the following details:
   - Bank Name `(Required)` (This full name of the bank)
   - Processing Time `(Required)`. (This will be displayed to users while transferring money to other banks)
   - Minimum Amount `(Required)` (The minimum amount user can transfer per transaction)
   - Maximum Transfer Limit `(Required)` (The maximum amount user can transfer per transaction)
   - Fixed Charge `(Required)` (The fixed charge will be added with the transfer amount)
   - Percent Charge `(Required)` (The percent charge amount will be calculated based on the transfer amount and will be added with the transfer amount)
   - Daily Limit - Maximum Transaction Amount `(Required)` (The maximum amount user can transfer in a calendar date.)
   - Daily Maximum Transaction Count `(Required)` (The maximum number of time user can transfer in a calendar date.)
   - Monthly Limit - Maximum Transaction Amount `(Required)` (The maximum amount user can transfer in a calendar month.)
   - Monthly Maximum Transaction Count `(Required)` (The maximum number of time user can transfer in a calendar month.)
   - Instruction to Transfer (Optional) (The instruction will be displayed to user.)
   - Dynamic Form for user input (The extra information you need from user, make the form as you want. The Name and Account Number field is mandatory.)
3. Submit the form to add the bank.

###### Other Bank Configuration

- Enable Other Bank Transfer from System Configuration by following steps:
  1. Go to the Settings menu.
  2. Select System Configuration.
  3. Ensure that the Other Bank Transfer module is enabled.
  4. Click the Submit button to save the changes.

###### Manage Other Banks:

- View the Other Banks list from Settings > Other Banks.
- Edit bank information by clicking the Edit button.
- Enable or Disable a bank by clicking the Enable or Disable button. Disabled banks will not appear when users attempt to add beneficiaries or can not initiate transfers.

###### Adding Beneficiaries

To transfer money to other banks, users must first add beneficiaries:

1. Navigate to the Transfer menu.
2. The Transfer History table will be displayed. Select the Other Bank option from the top.
3. The list of existing beneficiaries will be displayed. Select Manage Beneficiaries from the top.
4. o add a new beneficiary, click on the Add New button and fill in the required fields:
   - Select Bank
   - Short Name
   - Account Name
   - Account Number
   - Other Dynamic Fields

###### Transfer Process

Once beneficiaries are added, users can transfer money to them by selecting the desired beneficiary from the Other Bank page and completing the transfer process. The transfer will remain in a pending state until the admin completes or rejects the transfer.

##### Wire Transfer

Wire Transfer is a manual process where users can transfer funds to accounts via wire transfer.

###### Wire Transfer Configuration

Admins must configure the wire transfer settings before users can make wire transfers:

1. Navigate to the Wire Transfer settings in the Settings menu.
2. Update the following fields in the setting tab:
   - Transfer Limit - Minimum Amount
   - Transfer Limit - Maximum Limit
   - Transfer Charge - Fixed Charge
   - Transfer Charge - Percent Charge
   - Daily Limit - Maximum Limit
   - Daily Limit - Maximum Count
   - Monthly Limit- Maximum Limit
   - Monthly Limit- Maximum Transaction Count
   - Instruction
3. Click Submit button to save changes.
4. Navigate to the Transfer Form tab and create a form for users as needed.
5. Click Submit button to save changes.

###### Transfer Process

Users can initiate a wire transfer by completing a form configured by the administrator. Similar to Other Bank Transfers, Wire Transfers are fully manual, and the administrator must process the transfer manually.

##### Managing Transfers

###### View Transfers

Administrators can manage all transfer requests from the Money Transfers menu. This menu includes the following submenus:

- Pending Transfers
- Rejected Transfers
- Own Bank Transfers
- Other Bank Transfers
- Wire Transfers
- All Transfers

Each transfer entry includes a Details button, allowing the administrator to view the transfer details.

###### Complete / Reject Pending Transfers

In the transfer's details view, if the transfer is in a pending state, the administrator will have the option to Complete or Reject the transfer:

- Complete Transfer: Confirms the transfer is completed, moving it to the completed status.
- Reject Transfer: Denies the transfer, moving it to the rejected status. This is typically done if the transfer is deemed fraudulent or does not meet the required criteria. The amount will be refunded to the user's wallet, as the transfer amount is deducted upon the initiation of the request.

###### On This Article

#### FDR Management

The Fixed Deposit Receipt (FDR) module allows administrators to create fixed deposit plans for users. Users can invest in these plans and receive returns in installments based on the configured intervals. The FDR module is crucial for providing users with long-term savings options, while also ensuring that funds are locked in for a certain period.

##### Enabling the FDR Module

Before users can see and invest in FDR plans, the FDR module must be enabled from the System Configuration.

- Navigate to System Configuration:
  - Go to the Settings menu in the admin panel.
  - Select System Configuration.
- Enable the FDR Module:
  - Look for the FDR Module in the list of available modules.
  - Toggle the switch to ON.
  - Click Submit to save the changes.

##### Creating FDR Plans

Admins must create FDR plans that will be available for users to invest in. These plans will be visible on the website once the FDR module is enabled.

- Accessing FDR Plan Management:
  - Navigate to the Settings menu.
  - Search for Plans and select Manage Plans.
  - You will see a list of existing FDR plans, if any. The page also contains tabs for DPS Plans and Loan Plans.
- Adding a New FDR Plan:
  - A pop-up form will appear with the following fields after clicking Add Plan button:
    - Name: The name of the FDR plan.
    - Interest Rate: The interest rate for the plan.
    - Installment Interval (In Days): The frequency at which installments will be paid.
    - Locked Days (In Days): The lock-in period during which the main amount cannot be withdrawn.
    - Minimum Amount: The minimum investment amount.
    - Maximum Amount: The maximum investment amount.
  - Click Submit to save the changes.

##### User Interaction with FDR Plans

Once the FDR plans are created and the module is enabled, users can start investing in these plans.

- Opening an FDR:
  - Users can open an FDR by navigating to the FDR Plans menu under FDR menu.
  - They will see a list of available plans and can choose one based on their preference.
  - After selecting a plan, the user will invest the amount, which will be locked in for the specified period.
- Receiving Installments:
  - Users will receive their returns in installments after each interval as specified in the plan.
  - The installments will be automatically credited to the user’s wallet, provided that the cron jobs are correctly configured on the server.
- Closing an FDR:
  - After the lock-in period has passed, users will have the option to close the FDR.
  - This option will be available in the FDR Menu under the FDR List in their user panel.

##### Manage FDRs

The admin can manage all FDRs from the "FDR" menu, which includes submenus for different FDR statuses.

###### FDR Submenus:

- Running FDR: Lists all active FDRs.
- Due FDR: Lists FDRs with due installments. There is a "Pay Due" button to manually pay installments if the server cron fails.
- Closed FDR: Lists all FDRs that have been closed.
- All FDR: Displays all FDRs, regardless of status.

###### Viewing and Managing Installments:

- Each FDR entry includes a button to view its installment history.
- The admin can manually pay installments for Due FDRs using the "Pay Due" button if needed.

###### On This Article

#### DPS Management

The DPS (Deposit Pension Scheme) module allows users to save money regularly by making periodic installments over a fixed period. The admin is responsible for creating and managing DPS plans, which users can choose from to start their DPS accounts. The system automates installment payments and handles charges for delayed payments.

##### Enabling the DPS Module

Before users can access DPS plans, the admin must enable the DPS module in the system configuration.

- Navigate to System Configuration:
  - Go to the Settings menu in the admin panel.
  - Select System Configuration.
- Enable the DPS Module:
  - Look for the DPS Module in the list of available modules.
  - Toggle the switch to ON.
  - Click Submit to save the changes.

##### Creating DPS Plans

After enabling the DPS module, the admin needs to create DPS plans that will be available for users on the website.

- Accessing DPS Plan Management:
  - Navigate to the Settings menu.
  - Search for Plans and select Manage Plans.
  - Select the "DPS Plans" tab.
- Adding a New DPS Plan:
  - At the top of the DPS plans table, click the "Add Plan" button.
  - A new page will open with a form to create the DPS plan.
  - Fill in the Plan Details:
    - Name: Enter the name of the DPS plan.
    - Installment Interval: Define the days of interval between each installment.
    - Total Installment: Specify the total number of installments required for the plan.
    - Per Installment: Set the amount to be given per installment.
    - Interest Rate: Define the interest rate for the plan.
    - Charge for Delay (In Days): Specify the number of days after which a delay charge will be applied if the installment is not paid on time.
    - Fixed Charge: Set a fixed charge amount for delayed payments.
    - Percent Charge: Set a percentage charge for delayed payments.
  - Save the Plan: After completing the form, save the plan to make it available to users.

##### User Interaction with DPS Plans

Once the DPS plans are created, users can view and apply for these plans on the website.

- Apply for a DPS Plan:
  - Users can navigate to the "DPS" menu on the website and select "DPS Plans" to view available plans.
  - They will see a list of available plans and can choose one based on their preference.
  - Each plan will have an "Apply Now" button.
  - Users can click this button to apply for the plan.
- Giving Installments:
  - The first installment is given instantly from the user's account upon application.
  - Subsequent installments will be automatically deducted from the user's balance on the due dates.
- Handling Delayed Payments:
  - If a user does not have sufficient balance on the installment date, the system will apply a delay charge according to the plan's terms.
- Closing an DPS:
  - After a DPS account has matured, the user can choose to close it from the DPS menu. The matured amount will be credited to their account balance.
  - This option will be available in the DPS Menu under the DPS List in their user panel.

##### Manage DPS

The admin can manage all DPS from the "DPS" menu, which includes submenus for different DPS statuses.

###### DPS Submenus:

- Running DPS: Lists all active DPS accounts.
- Late Installment DPS: Lists DPS accounts with overdue installments.
- Matured DPS: Lists DPS accounts that have completed all installments.
- Closed DPS: Lists all DPS accounts that have been closed.
- All DPS: Displays all DPS accounts, regardless of status.

###### Viewing and Managing Installments:

- Admins can view each DPS account's details, including installment history and any delays.
- The admin can manually pay installments for Due DPSs using the "Pay Due" button if needed.

###### On This Article

#### Loan Management

The Loan module allows administrators to create and manage loan plans, which users can apply for through the digital banking platform. The system automates the repayment process through installments and handles charges for delayed payments.

##### Enabling the Loan Module

Before users can access Loan plans, the admin must enable the Loan module in the system configuration.

- Navigate to System Configuration:
  - Go to the Settings menu in the admin panel.
  - Select System Configuration.
- Enable the Loan Module:
  - Look for the Loan Module in the list of available modules.
  - Toggle the switch to ON.
  - Click Submit to save the changes.

##### Creating Loan Plans

Once the Loan module is enabled, the admin needs to create loan plans that will be available for users to select on the website.

- Accessing Loan Plan Management:
  - Navigate to the Settings menu.
  - Search for Plans and select Manage Plans.
  - Select the "Loan Plans" tab.
- Adding a New Loan Plan:
  - At the top of the Loan plans table, click the "Add Plan" button.
  - A new page will open with a form to create the Loan plan.
  - Fill in the Loan Plan Details:
    - Plan Name: Enter the name of the loan plan.
    - Minimum Amount: Define the minimum loan amount that can be applied for.
    - Maximum Amount: Define the maximum loan amount that can be applied for.
    - Per Installment: Set the amount to be paid per installment.
    - Installment Interval: Define the time interval between each installment.
    - Total Installments: Specify the total number of installments required for the plan.
    - Instruction: Provide any specific instructions for the loan plan.
    - Charge for Delay (In Days): Specify the number of days after which a delay charge will be applied if the installment is not paid on time.
    - Fixed Charge: Set a fixed charge amount for delayed payments.
    - Percent Charge: Set a percentage charge for delayed payments.
    - Loan Application Form Fields: Create a dynamic form to collect additional information from users applying for the loan.
  - Save the Plan: After completing the form, save the loan plan to make it available to users.

##### User Interaction with Loan Plans

After the loan plans are created, users can view and apply for these plans on the website.

- Apply for a Loan Plan:
  - Users can navigate to the "Loan" menu on the website and select "Loan Plans" to view available plans.
  - They will see a list of available plans and can choose one based on their preference.
  - Each plan will have an "Apply Now" button.
  - Users can click this button to apply for the plan.
- Giving Installments:
  - Installments will be automatically deducted from the user's balance on the due dates.
- Handling Delayed Payments:
  - If a user does not have sufficient balance on the installment date, the system will apply a delay charge according to the plan's terms.

##### Manage Loans

The admin can manage loan applications and monitor loan statuses through various submenus within the Loan menu.

###### Loan Submenus:

- Pending Loans: Lists loan applications that are awaiting approval.
- Running Loans: Lists active loans that are being repaid.
- Late Installment Loans: Lists loans with overdue installments.
- Paid Loans: Lists loans that have been fully repaid.
- Rejected Loans: Lists loan applications that have been rejected.
- All Loans: Displays all loans, regardless of status.

###### Approving a Loan:

- From the "Details" page of a loan, after reviewing the application, the admin can approve the loan. Upon approval, the loan amount will be credited to the user's balance.

###### Viewing and Managing Installments:

- Admins can view each Loan details, including installment history and any delays.

###### On This Article

#### Airtime Management

The Airtime Management module allows administrators to manage mobile top-ups, bundles, and PIN services using a third-party API. This documentation will guide you through the setup process, including API configuration, fetching countries and operators, and enabling airtime services for users.

##### API Configuration

- Access API Configuration
  - Navigate to the Settings menu in the admin panel.
  - Select API Configuration from the options.
- Set Up API Credentials
  - Click on the Help button to view instructions for creating an account with the third-party API provider.
  - Follow the instructions to create an account and obtain the necessary API credentials (Client ID and Client Secret).
- Enter API Credentials
  - Input the Client ID and Client Secret provided by the API provider into the corresponding fields.
  - Ensure that the Test Mode checkbox is unchecked unless you intend to operate in test mode.
  - Click Submit to save the API credentials.

##### Manage Airtime Countries

- Access Manage Airtime
  - Navigate to the Settings menu.
  - Select Manage Airtime from the options.
- Fetch and Select Countries
  - On the Airtime Countries page, a list of available countries will be displayed if they have been previously added.
  - To fetch new countries, click the Fetch Countries button at the top of the page.
  - The system will retrieve the list of countries from the API. Select the countries you wish to enable for airtime services and click "Add Selected Countries".

##### Manage Operators

- Access Operators for a Country
  - On the Airtime Countries page, each country listed will have an Operators button.
  - Click the Operators button to manage the mobile operators for that country.
- Fetch and Select Operators
  - If operators have been previously added, they will be displayed in a table.
  - To fetch new operators for a country, click the Fetch Operator button.
  - The system will retrieve the list of operators from the API. Select the operators you wish to enable and click "Add Selected Operators".

##### Enable Airtime Module

- Navigate to the Settings menu in the admin panel.
- Select System Configuration from the options.
- In the list of available modules, locate the Airtime module.
- Toggle the switch to ON to enable the Airtime feature.
- Click Submit to save the changes.

##### User Access to Airtime

- Once the countries and operators are configured, users will see an Airtime menu in their user panel.
- Users can send the amount by selecting country and operators.

##### Important Notes

- Currency Consistency: EEnsure that the currency set in your site's general settings matches the currency of your third-party API account. This consistency is crucial for the airtime feature to work correctly.
- Updating Operators: Operators will be updated automatically by running a cron command.

###### On This Article

#### Support Ticket

The Support Ticket module allows users and guests to create and manage support tickets, ensuring efficient handling of customer inquiries and issues. This documentation outlines the steps for users to open tickets, how guest submissions are handled, and how administrators can manage and respond to support tickets.

##### User Support Ticket Management

- Opening a Support Ticket
  - Users can open a support ticket from the Support Ticket menu in their user panel.
  - Upon clicking the Open New Ticket button, users will be presented with a form to provide the necessary details such as the subject, priority, and message.
  - Once submitted, the ticket will be recorded in the system, and users can track its status from the Support Ticket menu.
- Viewing and Managing Support Tickets
  - Users can view the status of their open tickets from the Support Ticket menu in their user panel.
  - Each ticket entry will display its current status (e.g., Open, Closed) and the option to view detailed conversations.
  - Users can also reply to the ticket if they need to provide additional information or close the ticket if the issue has been resolved.

##### Guest Support Ticket Management

- Submitting Contact Form
  - Guests (non-registered users) can submit a support ticket through the website's Contact Form.
  - Upon submission, the contact form entry is automatically converted into a support ticket in the system.
  - A confirmation email with a link to view the ticket is sent to the guest’s provided email address.
- Accessing the Ticket
  - Guests can access their support tickets by clicking on the link sent to their email after they submit the contact form.
  - The link will direct them to a page where they can view the status of their ticket and any responses from the support team.

##### Admin Support Ticket Management

- Accessing Support Tickets
  - Admins can access all support tickets from the Support Ticket menu in the admin panel.
  - The support tickets are organized in a table format, displaying key information such as ticket ID, subject, user/guest name, and status, priority etc.
- Responding to Support Tickets
  - Admins can click on any ticket to view the details and the conversation history.
  - They can reply to the ticket directly within the admin panel, providing solutions or requesting additional information from the user or guest.
  - Once an issue is resolved, admins can close the ticket, marking it as completed.

###### On This Article

#### Settings

This document provides an overview of the various settings available in the platform, including General Settings, System Configuration, and Logo & Favicon management. These settings allow administrators to customize and control different aspects of the platform’s functionality, appearance, and behavior.

##### General settings

The General Settings page allows admins to configure fundamental aspects of the platform that affect its overall operation and user experience. The settings can be accessed from Settings > General Settings.

###### Fields in General Settings:

- Site Title: The name of the bank, displayed in the browser tab and various places on the platform.
- Currency: The default currency used throughout the platform (e.g., USD, EUR, GBP).
- Currency Symbol: The symbol associated with the currency (e.g., $, €, £).
- Timezone: The default timezone for the platform, ensuring that all time-related functions are accurate.
- Site Base Color: The primary color used in the platform’s design theme.
- Site Secondary Color: The secondary color used in the platform’s design theme.
- Records to Display Per Page: The number of records shown per page in lists and tables.
- Currency Showing Format: The format in which currency values are displayed (e.g., Currency Text & Symbol Both, Currency Text Only, Currency Symbol Only).
- Account Number Prefix: A prefix added to all account numbers generated by the system.
- Account Number Length: The length of account numbers, excluding the prefix.
- OTP Expiration Time: The time limit for one-time passwords (OTPs) before they expire.
- User Idle Time: The duration of user inactivity before they are considered idle and will logout automatically if Auto Logout Idle Users is On.
- Transfer Limits & Charges: Detailed discussion on transfer limits & charges can be found in the Transfer Management part of this documentation.

##### System Configuration

The System Configuration page allows admins to enable or disable various modules and features across the platform. It can be accessed from Settings > System Configuration.

###### Key Toggles and Options:

- Force SSL: Enforces the use of HTTPS across the platform for enhanced security.
- OTP Via Email: Enables the sending of OTPs through email for user verification.
- OTP Via SMS: Enables the sending of OTPs through SMS for user verification.
- Auto Logout Idle Users: Automatically logs out users who have been idle for a specified period.
- Other Toggles: The System Configuration includes a variety of other toggles for different features and modules (many of these have been discussed in previous parts of this documentation). Each toggle can be enabled or disabled according to the platform’s needs.

##### Logo & Favicon Management

The Logo and Favicon feature allows admins to upload and manage the platform’s logo and favicon, ensuring consistent branding across the site. This can be accessed from Settings > Logo and Favicon.

###### Uploading and Managing Logos and Favicon:

- Logo for White Background: Upload the logo to be displayed on sections of the platform with a white background.
- Logo for Dark Background: Upload the logo to be displayed on sections of the platform with a dark background.
- Favicon: Upload the favicon, the small icon displayed in the browser tab, associated with the platform.

###### On This Article

#### Notification Settings

The Notification Settings feature allows admins to configure and manage notification preferences for the platform. This feature ensures that all communication methods (email, SMS, and push notifications) are properly set up and customized to meet the needs of the users and the platform.

##### Email Notification

###### Global Email Template

The Global Email Template section is used to design the default email templates. These templates serve as the base layout for all email notifications.

- Access Global Email Template
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - The Global Template and Email Template is selected by default.
- Review Global Short Codes:
  - A list of available short codes is provided on the Global Email Template page.
  - Short codes are placeholders used in email templates. They can be copied and used in the email body and subject to dynamically insert information such as user names, account details, etc.
- Fill up the form:
  - Email Sent From - Name: Enter the name that will appear as the sender in the email.
  - Email Sent From - Email: Enter the email address that will appear as the sender.
  - Email Body: Enter the default body content for the email template. This content is the design and layout of the email, which will be populated with specific messages from the notification templates.

###### Email Setting

This section allows you to configure how emails are sent from the platform.

- Access Email Setting
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select Email Setting from the options. The Global Template is selected by default.
- Configuration Options
  - PHP Mail: Select this option if you wish to use PHP's built-in mail function for sending emails.
  - SMTP: Select this option to use SMTP for sending emails. Provide the necessary SMTP server details.
  - SendGrid API: Choose this option if you are using SendGrid for sending emails.
  - Mailjet API: Select this option if you are using Mailjet for email delivery.
- Required Fields
  - Depending on the chosen configuration option, fill in the required fields such as SMTP server address, API keys, etc.
  - Click Submit to save your settings.

###### Control Email Notification

- Access Email Setting
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select Email Setting from the options. The Global Template is selected by default.
- Configuration Options
  - PHP Mail: Select this option if you wish to use PHP's built-in mail function for sending emails.
  - SMTP: Select this option to use SMTP for sending emails. Provide the necessary SMTP server details.
  - SendGrid API: Choose this option if you are using SendGrid for sending emails.
  - Mailjet API: Select this option if you are using Mailjet for email delivery.
- Required Fields
  - Depending on the chosen configuration option, fill in the required fields such as SMTP server address, API keys, etc.
  - Click Submit to save your settings.

##### SMS Notification

###### Global SMS Template

The Global SMS Template section is used to design the default SMS templates. These templates serve as the base layout for all SMS notifications.

- Access Global SMS Template
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select SMS Template from the options. Email Template is selected by default.
- Review Global Short Codes:
  - A list of available short codes is provided on the Global SMS Template page.
  - Short codes are placeholders used in SMS templates. They can be copied and used in the sms body to dynamically insert information such as user names, account details, etc.
- Fill up the form:
  - SMS Sent From: Enter the sender name that will appear in the SMS.
  - SMS Body: Enter the default body content for the SMS template. This content is the design and layout of the SMS, which will be populated with specific messages from the notification templates.

###### SMS Setting

This section allows you to configure how SMS are sent from the platform.

- Access SMS Setting
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select SMS Setting from the options. The Global Template is selected by default.
- Configuration Options
  - Clickatell: Select this option if you are using Clickatell for sending SMS. Provide the necessary Clickatell credentials.
  - Infobip: Choose this option if you use Infobip. Enter the required Infobip credentials.
  - Message Bird: Select this option if you use Message Bird for SMS delivery. Provide the Message Bird API key.
  - Nexmo: Choose Nexmo for sending SMS and enter the required API key.
  - SMS Broadcast: Select this option if you use SMS Broadcast. Enter the necessary credentials.
  - Twilio: Choose Twilio and enter the Twilio Account SID and Auth Token.
  - Text Magic: Select Text Magic and provide the API key.
  - Custom API: Use this option if you have a custom SMS API. Enter the necessary API details.
- Required Fields
  - Depending on the selected SMS provider, fill in the required fields such as API keys, credentials, etc.
  - Click Submit to save your settings.

##### Push Notification

###### Global Push Notification Template

The Global Push Notification Template section is used to design the default push notification templates. These templates serve as the base layout for all push notifications.

- Access Global Push Notification Template
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select SPush Notification Template from the options. Email Template is selected by default.
- Review Global Short Codes:
  - A list of available short codes is provided on the Global Push Notification Template page.
  - Short codes are placeholders used in Push Notification templates. They can be copied and used in the Push Notification body to dynamically insert information such as user names, account details, etc.
- Fill up the form:
  - Notification Title: Enter the default title for push notifications.
  - Push Notification Body: Enter the default body content for push notifications. This content is the design and layout of the push notification, which will be populated with specific messages from the notification templates.

###### Push Notification Setting

This section allows you to configure push notifications.

- Access Push Notification Setting
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select Push Notification Setting from the options. The Global Template is selected by default.
- Configuration Options
  - Upload JSON File from Firebase
    - Click the help button for instructions on how to obtain the JSON file from Firebase.
    - Upload the JSON file containing the Firebase configuration.
  - Form Fields
    - Fill in fields required for push notifications configuration.
    - Click Submit to save your settings.

##### Notification Templates

The Notification Templates section allows admins to customize various notification templates.

- Access Notification Templates
  - Navigate to the Settings menu in the admin panel.
  - Select Notification Settings from the options.
  - Select Notification Templates from the options. The Global Template is selected by default.
  - A list of all available notification templates is displayed, including templates for notifications such as Account Opened, Balance Added, etc.
- Editing and Customizing Templates
  - Each notification template has three buttons: Email, SMS, and Push. Admins can click these buttons to edit the respective template for that notification type.
  - After clicking a button, the admin is taken to a form where they can edit the content, subject (for email), and other relevant fields.
  - These templates are initially provided as dummy templates and should be customized by the admin to suit the platform's specific needs.
- Using Short Codes
  - Short codes are placeholders that can be used in notification templates. They help dynamically populate template fields with specific user data.
- Saving Changes
  - After making changes to a template, click the Save button to apply and store the modifications.

###### On This Article

#### Extensions

The Extension feature allows admins to manage and configure various integrated extensions within the platform. This feature provides an easy way to enhance the platform's functionality by enabling, configuring, or disabling available extensions.

##### Accessing the Extension Manager

To access the Extension Manager, follow these steps:

- Navigate to the Settings menu.
- Select Extension from the available options.

This will open the Extension Manager page, where all integrated extensions are listed.

##### Available Extensions

The platform comes with four integrated extensions:

- Custom Captcha: A customizable CAPTCHA system that helps prevent spam and automated bot activity on the platform.
- Google Analytics: A web analytics service offered by Google that tracks and reports website traffic, providing valuable insights into user behavior.
- Google reCAPTCHA 2: A free service that protects your website from spam and abuse by using advanced risk analysis techniques to differentiate between humans and bots.
- Tawk.to: A free live chat app that lets you monitor and chat with visitors on your website, providing real-time customer support.

##### Managing Extensions

Each extension listed in the Extension Manager can be managed through the following options:

- Configure Button: Each extension has a Configure button. Click this button to access the configuration settings for the selected extension.
- Enabling/Disabling Extensions: Each extension comes with an Enable/Disable button. Admins can activate or deactivate the extension as needed.

###### On This Article

#### Language Manager

The Language Manager feature allows administrators to add, manage, and implement multiple languages within the platform, enabling a multilingual user experience. This feature is essential for platforms that cater to a diverse user base with varying language preferences.

##### Accessing Language Manager

To access the Language Manager, follow these steps:

- Navigate to the Settings menu in the admin panel.
- Select Language

##### How to Add a New Language

To add a new language:

- Click the Add New button from the top of Languages list.
- A form will appear where you need to fill in the following details:
  - Flag: Upload a flag.
  - Language Name: Enter the name of the language.
  - Language Code: Enter the code of the language(e.g. en, bn, hi)
  - Default Language: Set if you want to make this language as the default language.

##### How to get Keywords from system

To get system keywords:

- Click the Fetch Keywords button from the top of Languages list.
- A pop-up will appear where you can see all keywords from the system. It will take some time.
  - Flag: Upload a flag.
  - Language Name: Enter the name of the language.
  - Language Code: Enter the code of the language(e.g. en, bn, hi)
  - Default Language: Set if you want to make this language as the default language.

##### How to Translate

Access the Keywords for Translation:

- Access the Keywords for Translation:
  - Navigate to Settings > Language in the admin panel.
  - Find the language you want to translate and click on the Keywords button associated with that language.
- Import or Add Keywords:
  - Import Keywords from Another Language: You can import keywords from system or an existing language by selecting the import option. This will add all keywords from the source language to the selected language, allowing you to translate them individually.
  - Manually Add Keywords: Alternatively, you can add keywords manually by clicking the Add Keyword button.
    - Key Field: Enter the keyword in English (this is the key that the system recognizes).
    - Value Field: Enter the translation of the keyword in the selected language.
- Translate the Imported or Added Keywords:
  - After importing keywords from another language or the system, a list of keywords will be displayed.
  - Click on each keyword to edit its translation.
  - Provide the translated value in the corresponding language for each keyword.
  - Click Submit to store the translations.

By following these steps, you ensure that all keywords are accurately translated and that users experience the platform in their preferred language.

###### On This Article

#### Frontend Manager

The Frontend Management section allows admins to manage every aspect of the platform's frontend, including content, sections, pages, SEO settings, templates, and more. This ensures the platform's frontend remains dynamic, up-to-date, and aligned with branding and legal requirements.

##### Managing Frontend Content and Sections

Admins can update the content of various sections and pages directly from the Manage Frontend menu under the Settings.

- Update Content for Sections and Pages:
  - Navigate to Settings > Manage Frontend.
  - Select the section or page you wish to update.
  - Modify the content as you want.
  - Save your changes to apply them to the frontend.

##### Managing Pages

Admins have the ability to add new pages, rearrange sections, and manage existing pages to ensure optimal content flow and organization.

- Add New Pages:
  - Navigate to Settings > Manage Pages.
  - Click on Add New Button.
  - Provide a page title and slug.
  - Click on the Submit button to add the new page
  - Add Section to the page:
    - Click on the Edit button of the page you have added.
    - Drag sections from the left side and drop them to the left side and click on "Update Now" button

- Add Sections to Pages:
  - While in the Manage Pages menu, choose the page where you want to add sections.
  - Click on the Edit button.
  - Drag sections from the left side and drop them to the left side and click on "Update Now" button
  - You can re arrange sections by drag and drop feature

##### SEO Configuration

Admins can configure global SEO settings to optimize the platform's visibility on search engines.

- Set Global SEO Contents:
  - Navigate to Settings > Manage Frontend.
  - Set the SEO Image, Meta Keywords, Meta Description, Social Title, and Social Description.
  - Save the settings to enhance the platform's SEO performance.

##### Template Management

Admins can quickly switch between different templates to change the overall look and feel of the website.

- Set Global SEO Contents:
  - Navigate to Settings > Manage Frontend.
  - Select the desired template.

##### Policy Pages Management

Admins can manage important policy pages, such as Terms and Conditions and Privacy Policy, ensuring they are up-to-date and compliant.

- Add or Edit Policy Pages:
  - Navigate to Settings > Manage Policy Pages.
  - To add a new policy page, click Add New button.
  - Provide the page title and content in the rich text editor (NIC Editor).
  - Save the page to publish it.
- SEO Settings for Policy Pages:
  - While adding or editing a policy page, admins can also configure SEO settings to optimize visibility.
  - Save the SEO settings along with the page content.
- Remove Policy Pages:
  - From the Manage Pages menu, select the policy page you wish to remove and delete it.

##### Maintenance Mode

Admins can enable maintenance mode to perform updates or changes without disrupting the user experience.

- Enable Maintenance Mode:
  - Navigate to Settings > Maintenance Mode.
  - Toggle the Status switch to enable maintenance mode.
  - Write the content that will be displayed on the maintenance page.
  - Submit to activate maintenance mode.

##### GDPR Cookie Policy

Admins can manage the GDPR cookie policy to ensure compliance with data protection regulations.

- Enable Maintenance Mode:
  - Navigate to Settings > GDPR Cookie.
  - Toggle the Status switch to enable GDPR Cookie alert for user.
  - Enter the GDPR cookie policy content.
  - Submit to save changes.

##### Custom CSS

Admins have the ability to customize the frontend design by adding custom CSS.

- Enable Maintenance Mode:
  - Navigate to Settings > Custom CSS.
  - Write or paste the CSS code to customize the frontend design.
  - Enter the GDPR cookie policy content.
  - Submit to save changes to apply the custom styles.

##### Sitemap XML

Admins can create and manage the sitemap XML to help search engines crawl the website more efficiently.

- Enable Maintenance Mode:
  - Navigate to Settings > Sitemap XML.
  - Write or paste the sitemap XML file.
  - Submit to ensure search engines can properly index the website.

##### Robots.txt Management

Admins can manage the robots.txt file to control how search engines access and index the website's content.

- Write Robots.txt::
  - Navigate to Settings > Robots txt.
  - Write the rules for search engine crawlers.
  - Submit to Save the file to apply the changes.

###### On This Article

Copyright © Viserlab 2024