BetLab Documentation

Introduction

Welcome to BetLab,the Sports Betting Application! This powerful platform is designed to provide everything you need to launch and manage a comprehensive sports betting website. With seamless integration to third-party sports data providers and a fully-featured admin panel, you can effortlessly manage your sports categories, leagues, games, odds, and more. Whether you're new to the sports betting industry or looking to upgrade your existing system, this application provides a user-friendly, scalable solution that caters to both administrators and bettors.

Key Features
  • Comprehensive Sports Management Admin can manage categories (Soccer, Basketball, Cricket, etc.) by adding them manually or fetching them from the third-party API. Categories help users navigate games based on the sport type.
  • Advanced Betting Options Allow bettors to place single bets or multi-bets on a wide range of markets including Moneyline, Point Spread, Over/Under, and Future Bets.
  • Dynamic Odds Fetching Fetch the latest odds from various bookmaker regions (US, UK, EU, AU) and display them based on selected markets. The system supports multiple odds formats (Fractional, Decimal, American).
  • Admin Control Over Outcomes & Refunds Admins can manually declare the outcome of markets.
  • API Integration Integrate seamlessly with third-party sports APIs to fetch data for categories, leagues, games, teams, and odds. Customize which regions and markets are fetched to optimize API usage.
  • Deposit & Withdrawal Management Manage user deposits and withdrawals with full control. Admins can manually approve or reject withdrawal requests, ensuring safe and secure transactions.
  • Referral Program & KYC Set up referral tracking for users and manage KYC (Know Your Bettor) processes for identity verification.
  • Customizable Frontend & User Experience Users can switch between different odds types, view markets by categories, place bets, and view their bet history. All features are accessible via a responsive and intuitive frontend.
  • SEO & Language Support Enhance visibility on search engines through customizable SEO settings, and provide a multilingual experience with full language management capabilities.
  • Automated Tasks via Cron Jobs Automate crucial tasks like fetching odds, updating games, and managing user-related activities through cron jobs.

This application is built for performance and flexibility, enabling you to scale your platform as your user base grows. With full control over settings and integration with trusted sports data providers, you can focus on delivering an exceptional betting experience for your users.

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 BetLab. 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()
image

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] [as_you_set_on_installation]
image

How to Activate

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.

image

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.

How to Start

Starting with BetLab is quick and straightforward. Whether you're launching a new sports betting platform or upgrading an existing one, follow these simple steps to get up and running:

  1. General Settings & System Configuration
    • Set platform details like title, currency, timezone, and base color under General Settings in the System Settings menu.
    • Control key features such as Bettor Registration, Force SSL, KYC Verification, Email/Mobile Verification, and the Referral Program under System Configuration in the System Settings menu.
  2. Configure API Settings (Optional)
    • If you want to automate the process of fetching sports data, configure the API integration in the API Setting under System Settings menu.
    • Choose whether to use automatic API data fetching for categories, leagues, games, markets, and odds, or add them manually.
  3. Set Up Cron Jobs
    Configure the following cron jobs under the System Settings to automate key tasks:
    • Fetch Leagues: Fetches leagues, tournaments, and competitions from the API and updates the database.
    • Fetch Games (Optional): Fetches games from the API and updates the database. If you want to manually add odds but fetch games from the API, set up this cron job. Games can also be fetched when updating odds.
    • Fetch Odds: Fetches all odds, including live odds, from the API and updates the database.
    • Fetch In-Play Odds: Fetches in-play odds from the API and updates the database.
    • Enable Games to Bet: Automatically updates games from "Not Open for Betting" to "Open for Betting" once the game start time is reached.
    • Process Winning Bets: Updates users' balances by adding the return amount for winning bets and sends a notification.
    • Manage Losing Bets: Notifies users about their losing bets.
    • Manage Refundable Bets: Refunds the stake amount by adding it back to the user’s balance and sends a notification.
  4. Configure Sports
    • Add sports categories, tournaments, leagues, teams, and games to your platform.
    • Set up betting markets and odds either automatically via the API or manually.
  5. Add Games, Markets & Odds
    • Add sports categories, tournaments, leagues, teams, and games to your platform.
    • Set up betting markets and odds either automatically via the API or manually.
  6. Add Payment Gateways & Withdrawal Methods
    • Configure over 30+ payment gateways and set up custom withdrawal methods under the System Settings to facilitate secure user transactions.
  7. Configure Notification Settings
    • Set up push, SMS, and email notifications to keep users engaged with timely updates about their bets, odds, and results.
  8. Customize Frontend Contents
    • Personalize your platform’s frontend, including your logo, favicon, and custom CSS to align with your brand. Configure policy pages, social logins, and extensions like Custom Captcha, Google Recaptcha, Google Analytics, Facebook Comment, and Tawk.to—all within the System Settings.
  9. Test and Launch
    • Conduct thorough testing to ensure everything works smoothly.
    • Once satisfied, launch your platform to start accepting bets and engaging users!

Sports Configuration

The system allows the admin to manage categories, leagues, and teams, ensuring that all data is synchronized with the API to provide accurate sports-related content. This document explains the management of Categories, Leagues, and Teams in the Sports Configuration system.

Category Management

The Category Management form is used to manage different sports categories. A category groups related sports together and helps in organizing the leagues and teams. Each category must be synced with the API to ensure data consistency.

Category Form Fields:
Any visitor to the website can become a registered bettor by signing up online. The process involves the following steps:
  • Name: The name of the sports category (e.g., "Football", "Basketball")
  • Name in API: The name of the category as it appears in the API. Must match the name in the API. If this field does not match the API name, the category will not be considered in the same category as the API
  • Slug: A URL-friendly version of the category name (e.g., "football", "basketball").
  • Icon: An icon representing the category.

Important Note:
If you want to add your own categories that are not available in the API you can add manually and keep the Name in API field empty.

League Management

The Leagues Management form is used to manage individual leagues within a category. A league represents a specific competition or set of teams playing in a sport. This section ensures that the leagues are linked with the correct sport category and the API for fetching games and odds.

League Form Fields:
  • Image: An image representing the league (e.g., a logo).
  • Category: The category to which this league belongs (e.g., "Football", "Basketball"). A dropdown list of available categories from the Category Management section.
  • Name: The full name of the league (e.g., "Premier League", "NBA").
  • Short Name: A shortened or abbreviated name for the league (e.g., "PL" for Premier League).
  • API Sport Key: A unique identifier used to link the league with the API. The API Sport Key must match the one used in the external API system. If it doesn't match, the league cannot fetch games or odds.
  • Slug: A URL-friendly version of the league name (e.g., "premier-league", "nba").
  • Has Outrights: A checkbox to indicate whether the league has outright markets (e.g., winner of the season).
  • League Status: A field to indicate whether the league is running or not running.

Important Note:
The API Sport Key must match the one used in the external API to ensure that the league can fetch games and odds. If the key does not match, the league will not sync with the API for these functionalities.

Manage Teams

The Teams Management form is used to manage teams that participate in leagues. Each team belongs to a specific category and is associated with a league. This section is critical for ensuring that the teams are correctly set up for the league's competitions.

Teams Form Fields:
  • Image: An image representing the team (e.g., team logo).
  • Category: The category to which this team belongs (e.g., "Football", "Basketball").
  • Name: The full name of the team (e.g., "Manchester United", "Los Angeles Lakers").
  • Short Name: A shortened or abbreviated name for the team (e.g., "Man Utd", "Lakers").
  • Slug: A URL-friendly version of the team name (e.g., "manchester-united", "los-angeles-lakers").

Teams are typically fetched automatically when games are fetched from the API. However, teams can also be added manually if required.

Game Management

The Game Management section allows administrators to manage games within the system, whether automatically added via cron jobs or manually added by the admin. The game management system ensures that all data about games, including their start times, betting windows, and market availability, are properly handled. It also allows the management of game status, markets, and odds.

Add/Edit Games

The admin can manually add games or update games that were either added automatically via the API or manually. If a game is added manually, the associated markets must also be added manually.

Game Form Fields
  • Type: Defines the type of the event. There are two options:
    • Individual Match: Refers to a single match between two teams or players.
    • Outright: Refers to a long-term market, such as a league winner or a tournament winner.
  • League: The league under which the game falls
  • Title: The name of the game or event (e.g., "Manchester United vs Liverpool" or "NBA Finals Game 1").
  • Game Start From: The exact start time of the game when the event will begin.
  • Bet Starts From: The time from when users can place bets on this game. This is typically slightly before the actual game starts. This is a mandatory field and helps control when the betting window for the game opens. A cron job (Enable Games to Bet) needs to be set on the server to update the game status according to the Bet Starts From time.
  • Slug: A URL-friendly version of the game title, typically used for routing or referencing in URLs.
    • Example: "manchester-united-vs-liverpool"
    • This is a mandatory field, which ensures that each game has a unique, readable URL.
Game Statuses

Games in the system have several statuses, each representing a different phase of the game's lifecycle. These statuses determine whether betting is allowed, whether the game is still open, and whether the odds are displayed on the frontend.

  • Not Open For Betting
    • Description: This status applies to games that are added manually by the admin initially. The game is not yet available for betting. Once the Bet Starts From time has passed, this status will automatically be updated to Open For Betting by a cron job.
    • Example: If a game is added on March 14, but betting starts on March 15 at 15:00, the game will be in the Not Open For Betting status until the cron job updates it.
  • Open For Betting
    • Description: This is the default status for games fetched from the API. When a game is in this state, users are allowed to place bets on the available markets.
    • Example: Example: If a match between two teams is scheduled to take place, and the betting window has been opened, the game status will be Open For Betting.
  • Cancelled
    • Description:If a game is cancelled, users can no longer place bets on the game. If any bets have been placed prior to the cancellation, the admin must manually refund the users.
    • Example: A game is cancelled due to bad weather, and any placed bets must be refunded.
  • Closed For Betting
    • Description: This status is applied when the betting period has ended. The game remains active, but users can no longer place bets.
    • Example: If a game is nearing its conclusion and the outcome is becoming predictable, the betting window should be closed to maintain fair play.
  • Game Ended
    • Description: This status is used once the game has concluded. The admin must manually change the game status to Game Ended once the event is over. The system will no longer display odds for this game, and no betting markets will be shown.
    • Example: After a football match is finished, the admin changes the status to Game Ended to stop showing odds and prevent further bets.
Manage Markets

Each game has associated markets (betting options), and these markets can be selected, updated, or customized by the admin. The admin can choose from a set of featured markets, add pre-listed markets, or create custom markets for each game.

Markets for Each Game:
  • Featured Markets: These are the main betting markets selected from the general settings. They are automatically added to the game based on the odds fetched from the API. Odds will be updated automatically when the odds are updated in the API and the Fetch Odds cron job is run.
  • Pre-listed Markets: These are additional markets that can be added to the game. They are not automatically updated and must be manually updated by the admin. Pre-listed markets are useful for adding specific markets that are not available in the API or for adding markets that are not available in the featured markets.
  • Custom Markets: These are custom markets created by the admin for each game. They are not automatically updated and must be manually updated by the admin. Custom markets are useful for adding specific markets that are not available in the API or in the pre-listed markets.
Managing Markets
  • Update Odds: The system provide an interface to update the odds or the markets for each game. This is useful for updating the odds or the markets for a specific game. This useful for manually added markets or if you don't want to update the odds from the API.
  • Lock Market or Outcomes: The system provide an interface to lock a market or an outcome. This is useful for preventing users from betting on a specific market or outcome.
  • Enable or Disable Markets/Outcomes: Admins have the flexibility to enable or disable specific markets or outcomes. For example, a market may be temporarily unavailable for betting due to external conditions, and the admin can disable it until it is ready to be used again.
Example of Markets:
  • Head to Head: Users can bet on which team or player will win the match.
  • Point Spread: Users bet on whether a team will win by a specific margin.
  • Over/Under: Users can bet on whether the total points scored in a game will be over or under a specified number.

Bet Management

The Bet Management system allows bettors to place bets on available markets, with options to place either single bets or multi-bets. Admins can set limits on the minimum and maximum stake amounts for both single and multi-bets. Once a bet is placed, the stake amount is immediately deducted from the bettor's account, and the bettor will receive the return amount if they win.

Placing a Bet
Bettors' Process
  1. Login Requirement: Bettors must log into their account before they can place any bets. If a bettor is not logged in, they will be prompted to do so before proceeding with the bet placement.
  2. Selecting a Market and Outcome: Bettors can browse available markets on the website and select their desired outcome. The available outcomes are displayed based on the markets chosen by the bettor.
  3. Single Bet or Multi-Bet: Bettors have the option to place:
    • Single Bet: A bet placed on a single outcome.
    • Multi-Bet: A bet placed on multiple outcomes, combining them into a single bet.
  4. Placing the Bet: After selecting the outcome(s), the bettor enters the desired stake amount for the bet. The system will check that the stake falls within the minimum and maximum limits set by the admin. If the amount is valid, the bettor can submit the bet.
  5. Instant Deduction: Upon placing the bet, the stake amount is immediately deducted from the bettor's account balance. If the bettor wins the bet, they will receive the return amount based on the odds at the time of the bet placement.
Admin Panel: Bet Management
Admins can view all placed bets from the Bet Placed menu in the admin panel. Here, the admin can see detailed information about each bet.
Bet Limits Configuration

Admins can configure the minimum and maximum bet limits for both single bets and multi-bets via the admin panel. These limits ensure that bettors can only place bets within the predefined ranges.

  • Navigate to Bet Management Settings: Go to the System Settings > General Settings to configure limits.
  • Configure Limits
    • Single Bet Minimum Limit: Set the minimum amount a bettor can place for a single bet.
    • Single Bet Maximum Limit: Set the maximum amount a bettor can place for a single bet.
    • Multi-Bet Minimum Limit: Set the minimum amount a bettor can place for a multi-bet.
    • Multi-Bet Maximum Limit: Set the maximum amount a bettor can place for a multi-bet.

Declare Outcomes

The Declare Outcomes section allows the admin to manage and finalize betting results by selecting winning outcomes or issuing refunds. This ensures fair play and proper payout distribution for bettors.

Pending Outcomes

The Pending List displays all markets where bets have been placed, but no winning outcome has been declared yet. Admins can take the following actions:

  • Select Outcome: Opens an interface where the admin can manually declare the winning outcome for a market.
  • Refund: If a game is abandoned or canceled, the admin can select this option to refund all bets placed on that market.
  • Bets: Allows the admin to view all bets placed on a particular market before declaring the outcome.
Declaring a Winning Outcome

Once the admin selects a winning outcome for a market:

  • The bettors who placed winning bets will receive their payout automatically when the cron job runs.
  • The same cron job will also process refunds if the admin has marked the market for a refund.
Declared Outcomes

The Declared List section allows the admin to review all previously declared outcomes. This provides a record of resolved bets and ensures transparency in the outcome declaration process.

Deposit Management

The Deposit Management system enables admins to configure payment gateways, manage deposit transactions, and approve manual deposits. Bettors must fund their accounts using available deposit methods before placing bets.

Configuring Deposit Methods

To enable deposits, the admin must configure payment gateways and add supported currencies.
📍 Navigation: System Settings > Payment Gateways

Available Deposit Methods:
  1. Automatic Payment Gateways:
    • Admin can activate 30+ integrated payment gateways.
    • Each gateway has its own API keys, merchant IDs, and credentials, which the admin must configure.
    • Supported currencies must be added for a gateway to be active.
    • Once enabled, users/bettors can deposit funds instantly through these gateways.
  2. Manual Payment Gateways
    • Admin can create custom/manual deposit options where users send money manually.
    • Custom deposit settings include:
      • Deposit Method name, Currency, Rate, Limits and Charges
      • Deposit instructions & User Data as dynamic form for user to collect the required data from user.
    • These deposits require manual approval before crediting funds to the user.
Bettor/User Deposits

Bettors can fund their accounts through automated or manual payment methods before placing bets.

  • Automated Deposits:
    • Users deposit through configured automatic payment gateways.
    • Funds are added instantly upon successful transactions.
  • Manual Deposits:
    • Users initiate deposits based on admin-provided instructions.
    • Users must submit proof of payment for verification.
    • Admin reviews and approves or rejects the deposit.
    • If approved, funds are added to the user’s balance.
Manage Deposits from Admin Panel

Admins can track and manage all deposit transactions, including automated and manual deposits.

How to Approve a Manual Deposit
  1. Navigate to the Deposits Menu.
  2. View Pending Deposits.
  3. Click Details to review deposit information (amount, username, etc.).
  4. Click Approve to process the deposit.
  5. The deposit is then credited to the user's account.
Deposit Statuses
Status Description
Pending Awaiting admin approval.
Approved Admin-approved deposit, credited to the user’s balance.
Successful Successfully processed via an automated gateway.
Rejected Deposit was declined by the admin.
Initialized User initiated the deposit but didn’t complete the process.
Filtering & Searching Deposits
  • Filter by Date: Select date ranges to view deposits.
  • Search by Username or TRX No: Find specific transactions quickly.
  • Filter by User: Click a username in the deposit list to view their deposits.
  • Filter by Payment Gateway: Click a gateway name in the deposit list to see deposits via that gateway.

This Deposit Management system ensures secure and efficient handling of user funds. This Deposit Management system ensures secure and efficient handling of user funds.

Withdrawals Management

The Withdrawals Management system enables the admin to manage all withdrawal requests. The process is manual, meaning that each withdrawal request must be approved or rejected by the admin.

Configuring Withdrawal Methods

To enable withdrawals, the admin must add withdrawal methods.
📍 Navigation: System Settings > Withdrawal Methods

Withdrawal Methods Configuration

Admin can configure various withdrawal methods that users can select when requesting a withdrawal. The following fields need to be configured for each withdrawal method:

  • Logo: Upload a logo for the withdrawal method.
  • Name: Define the name of the withdrawal method (e.g., Bank Transfer, PayPal, etc.).
  • Currency: Specify which currency is supported for withdrawals.
  • Rate: Define the conversion rate according to the site's currency.
  • Limits: Set minimum and maximum withdrawal limits.
  • Charges: Define the fixed and percentage fees.
  • Withdraw Instruction: Provide detailed instructions for the user to complete their withdrawal.
  • User Data: Admin can set up a dynamic form to collect necessary information from the user (e.g., account number, bank name).
Bettor/User Withdrawals
Requesting a Withdrawal
  • Bettors can request a withdrawal using any available withdrawal methods that have been enabled by the admin.
  • Funds Deduction: When the user submits a withdrawal request, the system instantly deducts the requested amount from the user's balance.
Managing Withdrawals from Admin Panel

Admins can track and manage all withdrawal transactions under the Withdrawals Menu.

How to Approve or Reject a Withdrawal
  1. Navigate to the Withdrawals Menu.
  2. View Pending Withdrawals.
  3. Click Details to review the withdrawal request.
  4. Click Approve to process the deposit.
  5. Admin can either:
    • Approve the withdrawal request, which will process the transaction.
    • Reject the request, and the requested amount will be instantly refunded to the user's balance.
Withdrawal Statuses
Status Description
Pending The withdrawal request is awaiting admin approval.
Approved The withdrawal request has been approved and processed.The withdrawal request has been approved and processed.
Rejected The withdrawal request has been rejected, and the funds have been refunded to the user's account.
Filtering & Searching Withdrawals
  • Filter by Date: Select date ranges to view withdrawals.
  • Search by Username or TRX No: Find specific transactions quickly.
  • Filter by User: Click a username in the withdrawals list to view their withdrawals.
  • Filter by Method: Click a method name in the withdrawals list to see withdrawals via that withdrawal method.

This Withdrawals Management system ensures that the admin has complete control over withdrawal requests and that users can easily withdraw funds through the configured methods.

Support Ticket

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

Bettor Support Ticket Management
  • Opening a Support Ticket
    • Bettors can open a support ticket from the Support Ticket menu in their user panel.
    • Upon clicking the Open New Ticket button, bettors 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 bettors can track its status from the Support Ticket menu.
  • Viewing and Managing Support Tickets
    • Bettors 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.
    • Bettors can also reply to the ticket if they need to provide additional information or close the ticket if the issue has been resolved.
Visitor Support Ticket Management
  • Submitting Contact Form
    • Visitors (non-registered bettors) 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 visitor’s provided email address.
  • Accessing the Ticket
    • Visitors 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/visitor 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 visitor.
    • Once an issue is resolved, admins can close the ticket, marking it as completed.

Settings

This document provides an overview of the various settings available in the platform, including General Settings & System Configuration 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 site, 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.
  • 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).
  • Single Bet Minimum Limit: The minimum amount that can be bet on a single bet.
  • Single Bet Maximum Limit: The maximum amount that can be bet on a single bet.
  • Multi Bet Minimum Limit: The minimum amount that can be bet on a multi bet.
  • Multi Bet Maximum Limit: The maximum amount that can be bet on a multi bet.
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:
  • Bettor Registration: Enables or disables the registration process for bettors.
  • Force SSL: Enforces the use of HTTPS across the platform for enhanced security.
  • Agree Policy: Requires users to agree to the platform’s terms and conditions before proceeding registration.
  • KYC Verification: Enables or disables the Know Your Customer (KYC) verification process for bettors.
  • Email Verification: Users must verify their email address using the verification code sent to their email to access their account if this option is enabled.
  • Email Notification: Enables or disables email notifications for various platform events.
  • Mobile Verification: Users must verify their mobile number using the verification code sent to their mobile number to access their account if this option is enabled.
  • SMS Notification: Enables or disables SMS notifications for various platform events.
  • Push Notification: Enables or disables push notifications for various platform events.
  • Language Option: Allows users to select their preferred language for the platform.
  • Referral Program: Enable or disable the Referral Program. If disabled, the Referral Program will no longer function in the system.

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

Frontend Settings

The system 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.

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 System Settings > Logo and Favicon.

Upload the logo in an optimized size and format. The recommended size is 160 x 35 pixels. However, the system does not resize the image; it will be uploaded as is.

Frontend Content

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

  • Update Content for Sections and Pages:
    • Navigate to System Settings > Manage Frontend.
    • Select the section.
    • Modify the content as you want.
    • Save your changes to apply them to the frontend.
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.
  • Set Global SEO Contents:
    • Navigate to System Settings > SEO Configuration.
    • Enter SEO Image, Meta Keywords, Meta Description, Social Title, Social Description
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 System Settings > 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.
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.

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 bettor 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.

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, follow these steps:

  • Navigate to the System 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 System 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.