Field Service Management Platform

Pakhi FieldForce Documentation

A full-featured Field Service Management (FSM) platform built with PHP & MySQL. Manage Service Requests, Job Cards, Work Orders, AMC Contracts, Technician Tracking, Inventory, Billing, CRM, and Reports — all in one place.

PHP 8.x Ready MySQL 5.7+ Bootstrap 5.3 7 User Roles 7 Modules SLA Tracking Live GPS Tracking AMC & Warranty

Overview

What's included in this system

Pakhi FieldForce is a comprehensive Field Service Management platform built with PHP & MySQL. It covers the entire field service lifecycle — from customer lead capture to job completion, from technician dispatch to billing and payment collection. The system is purpose-built for businesses like AC Service, RO Water Purifier, CCTV, Solar, Electrical, Plumbing, Pest Control, HVAC, and all field service industries that manage on-site technicians.

Service Requests

Capture, assign, and track every customer service request with SLA timers.

Job Cards

Detailed job execution with parts usage, photos, signature, and status flow.

Work Orders

Planned maintenance and project-based work order management.

AMC & Warranty

Annual Maintenance Contracts with expiry alerts and contract scheduling.

Technicians

Manage field engineers with skills, availability, live GPS, and attendance.

Live Tracking

Real-time technician location map with job status overlays.

Inventory

Products, stock levels, warehouses, and inter-warehouse transfers.

Billing

Quotations, GST invoices, payment collection, and expense tracking.

CRM & Leads

Lead pipeline, customer 360° profile, assets, and follow-up tracking.

System Requirements

Minimum server configuration needed to run this system

ComponentMinimumRecommended
PHP7.4+8.1 or 8.2
MySQL5.7+8.0+ / MariaDB 10.6+
Web ServerApache / NginxApache with mod_rewrite enabled
PHP ExtensionsPDO, PDO_MySQL, mbstring+ GD, fileinfo, openssl, zip, curl
Local ServerXAMPP / WAMPLaragon or WAMP 3.x
RAM512 MB2 GB or more
Disk Space100 MB + uploads1 GB+ recommended
BrowserChrome 90+ / Firefox 90+Latest Chrome or Edge
JavaScript LibrariesChart.js, DataTables, Select2Loaded via CDN (no install needed)
The GD extension is recommended for image processing in uploads. The curl extension is needed if you integrate GPS or external APIs. All JS libraries (Chart.js 4.4, DataTables 1.13, Select2 4.1, SweetAlert2 11, Flatpickr) are loaded from CDN — no npm or build step required.

Installation

Step-by-step setup guide — takes less than 5 minutes

  • Copy Files to Web Root
    Extract the ZIP and copy the entire pakhi-fieldForce/ folder to your web server root.
    WAMP: C:/wamp64/www/pakhi-fieldForce/  |  XAMPP: htdocs/pakhi-fieldForce/
  • Start WAMP / XAMPP
    Make sure both Apache and MySQL services are running (green icon in WAMP tray).
  • Run the One-Click Installer
    Open your browser and visit:
    http://localhost/pakhi-fieldForce/admin/install.php
    Click Run Installation. This automatically creates the pakhi_fieldforce database, imports all 40+ tables, and seeds default data (company, roles, admin user, service types).
  • Delete install.php
    After successful installation, delete admin/install.php immediately for security. The installer page itself will remind you.
  • Configure App URL
    Open admin/config/constants.php and update APP_URL to match your local or live server URL.
  • Set Uploads Folder Permissions
    Ensure admin/assets/uploads/ is writable. On Linux/Mac: chmod 755 admin/assets/uploads/. On WAMP/XAMPP this is usually automatic.
  • Login to the System
    Go to: http://localhost/pakhi-fieldForce/admin/login.php
    Use the default credentials: admin@pakhi.com / password
Important: The installer reads the SQL file from database/pakhi_fieldforce.sql. If the database already exists, re-running install.php will re-import it. Always delete install.php after first successful setup.

Manual Database Import (Alternative)

phpMyAdmin1. Open phpMyAdmin → Create database: pakhi_fieldforce (charset: utf8mb4_unicode_ci) 2. Click Import tab → Choose file: database/pakhi_fieldforce.sql 3. Click Go — all tables and seed data will be imported in one step.
CMD / Terminalmysql -u root -p -e "CREATE DATABASE pakhi_fieldforce CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" mysql -u root -p pakhi_fieldforce < database/pakhi_fieldforce.sql

Folder Structure

Complete project directory layout

pakhi-fieldForce/ ├── admin/ ← Main application root │ ├── index.php ← Main Dashboard │ ├── login.php ← Login page │ ├── logout.php ← Session destroy & redirect │ ├── forgot-password.php ← Password reset flow │ ├── install.php ← One-click DB installer (delete after use) │ ├── .htaccess ← Apache security rules │ │ │ ├── config/ ← Core configuration │ │ ├── constants.php ← APP_NAME, APP_URL, currency, timeouts │ │ ├── database.php ← PDO connection (DB_HOST, DB_USER, DB_PASS, DB_NAME) │ │ ├── functions.php ← Global helpers (auth, flash, badges, pagination, audit) │ │ └── init.php ← Bootstrap — loads all config on every page │ │ │ ├── includes/ ← Shared layout partials │ │ ├── header.php ← Top navbar (search, notifications, user menu) │ │ ├── sidebar.php ← Left navigation menu │ │ ├── layout_start.php ← Opens main content wrapper │ │ └── footer.php ← CDN scripts, Chart.js, DataTables, closing tags │ │ │ ├── assets/ ← Frontend assets │ │ ├── css/ — style.css (custom global styles) │ │ ├── js/ — app.js (custom JavaScript) │ │ ├── images/ — brand logos & UI images │ │ └── uploads/ — user-uploaded files (photos, documents) │ │ │ ├── ajax/ ← AJAX endpoint handlers │ │ ├── customers.php — Customer search & quick-fetch │ │ ├── jobs.php — Job status updates & assignment │ │ ├── leads.php — Lead status & follow-up AJAX │ │ ├── notifications.php — Notification list & mark-read │ │ ├── search.php — Global search endpoint │ │ └── update-status.php — Generic status update handler │ │ │ └── modules/ ← All feature modules │ ├── crm/ — leads.php, lead-add.php, customers.php, │ │ customer-add.php, customer-profile.php, assets.php │ ├── service/ — service-requests.php, sr-add.php, │ │ work-orders.php, wo-add.php, wo-detail.php, │ │ job-cards.php, job-add.php, job-detail.php, │ │ amc.php, amc-add.php, warranty.php, complaints.php │ ├── field/ — technicians.php, technician-add.php, │ │ technician-profile.php, teams.php, assignment.php, │ │ calendar.php, attendance.php, live-tracking.php │ ├── inventory/ — products.php, stock.php, │ │ warehouses.php, stock-transfer.php │ ├── billing/ — quotations.php, invoices.php, │ │ invoice-add.php, invoice-view.php, │ │ payments.php, payment-add.php, expenses.php │ ├── reports/ — reports.php (all reports) │ └── settings/ — company.php, branches.php, users.php, │ user-add.php, user-edit.php, roles.php, │ service-types.php, sla.php, │ profile.php, change-password.php │ ├── database/ │ └── pakhi_fieldforce.sql ← Complete DB schema + seed data (40+ tables) │ ├── SETUP.md ← Quick setup guide (this documentation) └── documentation.html ← This file

Default Login Credentials

Use these to access the system after installation

Important: These are default demo credentials. Change all passwords immediately before deploying to production.
Super Admin
Super Admin ✓ DEFAULT LOGIN
URLhttp://localhost/pakhi-fieldForce/admin/login.php
Emailadmin@pakhi.com
Passwordpassword
Dashboard/admin/index.php (Main Dashboard)
Access LevelFull system access — all modules, all companies, all settings
Admin
Admin
Emailadmin@company.com
Passwordadmin123
Access LevelFull operational access within assigned company — all modules
Service Manager
Service Manager
Emailservice@company.com
Passwordadmin123
Access LevelService Requests, Work Orders, Job Cards, AMC, Warranty, Complaints, Technicians
Dispatcher
Dispatcher
Emaildispatcher@company.com
Passwordadmin123
Access LevelJob Assignment, Technician availability, Calendar, Live Tracking
Inventory Manager
Inventory
Emailinventory@company.com
Passwordadmin123
Access LevelProducts, Stock levels, Warehouses, Stock adjustments, Transfers
Accountant
Accountant
Emailaccounts@company.com
Passwordadmin123
Access LevelQuotations, Invoices, Payments, Expenses, Financial Reports
HR Manager
HR
Emailhr@company.com
Passwordadmin123
Access LevelTechnician profiles, Attendance management, Teams
Technician (Mobile App)
Technician 📱 MOBILE APP LOGIN
App URLhttp://localhost:8888/#/login
Emailtech@pakhi.com
Passwordpassword
Employee IDTECH001
Access LevelMy Jobs, Job Card Execution, GPS Check-In/Out, Attendance, Notifications
NoteThis is the Flutter Technician App. Use this account to log in on the mobile/web app at port 8888.

Quick Reference — All Credentials

RoleEmailPasswordKey Access
Super Adminadmin@pakhi.compasswordFull system
Adminadmin@company.comadmin123All modules
Service Managerservice@company.comadmin123Service + Field
Dispatcherdispatcher@company.comadmin123Assignment + Tracking
Inventoryinventory@company.comadmin123Stock management
Accountantaccounts@company.comadmin123Billing + Finance
HR Managerhr@company.comadmin123Attendance + Teams
Technician 📱 Mobiletech@pakhi.compasswordFlutter App (port 8888)
Security Notice: Default password for the main admin is password. All passwords are stored using PHP's password_hash() (bcrypt). Change all passwords before going live on a production server.

Database Configuration

Connection settings and table reference

Edit admin/config/database.php to set your database credentials:

PHP<?php define('DB_HOST', 'localhost'); define('DB_NAME', 'pakhi_fieldforce'); define('DB_USER', 'root'); define('DB_PASS', ''); // Set your MySQL password here define('DB_CHARSET', 'utf8mb4'); function db() { static $pdo = null; if ($pdo === null) { $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET; $pdo = new PDO($dsn, DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); } return $pdo; }

Edit admin/config/constants.php for app-level settings:

PHPdefine('APP_NAME', 'Pakhi FieldForce'); define('APP_VERSION', '1.0.0'); define('APP_URL', 'http://localhost/pakhi-fieldForce/admin'); // Update for live define('SESSION_TIMEOUT', 7200); // 2 hours in seconds define('CURRENCY_SYMBOL', '₹'); define('DATE_FORMAT', 'd-m-Y'); define('RECORDS_PER_PAGE', 20);
The db() function uses a singleton pattern — it creates the PDO connection once and reuses it across the entire page request. Call $pdo = db(); anywhere after including init.php.

All Database Tables (40+)

Tables-- CORE companies, branches, users, roles, role_permissions, financial_years, audit_logs, notifications -- CRM customers, leads, lead_follow_ups, customer_assets -- SERVICE service_requests, service_request_notes, work_orders, work_order_items, job_cards, job_card_parts, job_card_photos, amc_contracts, amc_visits, warranties, complaints -- FIELD OPERATIONS technicians, technician_skills, teams, team_members, job_assignments, attendance, technician_locations -- INVENTORY products, product_categories, warehouses, stock, stock_adjustments, stock_transfers, stock_transfer_items -- BILLING quotations, quotation_items, invoices, invoice_items, payments, expenses -- SETTINGS service_types, sla_policies, company_settings

Customization

How to brand and extend the system

Changing App Name & URL

Update config/constants.php — change APP_NAME and APP_URL. The name propagates automatically through all page titles, emails, and headers.

Changing Theme Colors

CSS — admin/assets/css/style.css:root { --primary: #1a56db; /* Main blue accent */ --primary-dark: #0e3a8c; /* Darker shade for hover/gradient */ --sidebar-bg: #0f172a; /* Sidebar background */ --sidebar-text: #94a3b8; /* Sidebar nav text */ --accent: #10b981; /* Success / completed green */ }

Adding a New Module Page

PHP<?php require_once __DIR__ . '/../../config/init.php'; requireLogin(); // Redirects to login if not authenticated $page_title = 'My New Module'; $pdo = db(); $cid = (int)$_SESSION['company_id']; // Your query logic here $data = $pdo->prepare("SELECT * FROM my_table WHERE company_id = ?"); $data->execute([$cid]); $rows = $data->fetchAll(); // Include the layout require_once '../../includes/layout_start.php'; ?> <!-- Your HTML here --> <div class="page-header"> <h1 class="page-title">My New Module</h1> </div> <?php require_once '../../includes/footer.php'; ?>

Adding to Sidebar Menu

Open admin/includes/sidebar.php and add a new <li> entry inside the appropriate section:

PHP — includes/sidebar.php<li class="nav-item"> <a href="<?= APP_URL ?>/modules/mymodule/list.php" class="nav-link <?= isActive('mymodule') ?>"> <i class="bi bi-star"></i> <span>My Module</span> </a> </li>

Configuring SLA Rules

Go to Settings → SLA Policies to configure response and resolution time rules by service type and priority. SLA timers are automatically applied to all new service requests.

The statusBadge() and priorityBadge() helper functions in functions.php automatically map status/priority strings to Bootstrap badge colors. Add new statuses to the $map array to extend them.

User Roles & Permissions

7 built-in roles with module-level permission control

RoleSlugModule Access
Super Adminsuper_adminFull system — all modules, all companies, all settings
AdminadminAll modules within assigned company
Service Managerservice_managerService Requests, Work Orders, Job Cards, AMC, Warranty, Complaints, Technicians, Reports
DispatcherdispatcherJob Assignment, Technician Availability, Calendar, Live Tracking
Inventory Managerinventory_managerProducts, Stock, Warehouses, Stock Adjustments, Transfers
AccountantaccountantQuotations, Invoices, Payments, Expenses, Financial Reports
HR Managerhr_managerTechnician Profiles, Attendance, Teams
Permissions are stored in the role_permissions table (module + action columns) and loaded into $_SESSION['permissions'] on login. Use hasPermission('module', 'view') anywhere to check access. Admins can manage roles from Settings → Roles & Permissions using the visual permission matrix.

Permission Matrix (Example)

ModuleSuper AdminAdminService MgrDispatcherInventoryAccountant
Service Requests✓ Full✓ Full✓ FullView only✗✗
Job Cards✓ Full✓ Full✓ Full✓ Assign✗✗
Inventory / Stock✓ Full✓ FullView only✗✓ Full✗
Billing / Invoices✓ Full✓ Full✗✗✗✓ Full
Live Tracking✓ Full✓ Full✓ Full✓ Full✗✗
Settings✓ Full✓ Full✗✗✗✗

Modules Overview

Detailed breakdown of all 7 modules

CRM Module

Files: leads.php, lead-add.php, customers.php, customer-add.php, customer-profile.php, assets.php

Lead capture with pipeline tracking (New → Contacted → Qualified → Quotation → Won/Lost). Full customer profile with 9 tabs: Overview, Service History, Assets, Invoices, Quotations, AMC Contracts, Complaints, Notes, and Documents. Customer assets management with warranty and serial number tracking. Lead-to-customer conversion flow.

Service Module

Files: service-requests.php, sr-add.php, work-orders.php, wo-add.php, wo-detail.php, job-cards.php, job-add.php, job-detail.php, amc.php, amc-add.php, warranty.php, complaints.php

Service Requests: Customer-raised requests with SLA timer, priority levels (Low/Normal/High/Urgent/Emergency), auto-number generation (SR-XXXXX). Full lifecycle: New → Assigned → In Progress → On Hold → Completed/Cancelled.
Work Orders: Planned maintenance jobs with multi-item task lists and technician assignment.
Job Cards: Field execution record with parts consumed, photos uploaded, customer signature, and 12-stage status flow.
AMC Contracts: Annual Maintenance Contracts with visit scheduling, expiry alerts, and renewal tracking.
Warranty: Product warranty register with expiry tracking.
Complaints: Dedicated complaint module separate from service requests.

Field Operations Module

Files: technicians.php, technician-add.php, technician-profile.php, teams.php, assignment.php, calendar.php, attendance.php, live-tracking.php

Technicians: Full technician master with skills matrix, certifications, zone coverage, status (Available/On Job/On Leave/Offline), and photo.
Teams: Create and manage technician groups for large projects.
Smart Assignment: View all open jobs and available technicians side-by-side with drag-assign capability.
Calendar: Monthly technician schedule view showing all assigned jobs per day.
Attendance: Daily check-in/check-out records with summary reports.
Live Tracking: Real-time map showing all technician locations — GPS coordinates pushed from the mobile app.

Inventory Module

Files: products.php, stock.php, warehouses.php, stock-transfer.php

Product master with SKU, HSN code, purchase price, selling price, GST rate, and category. Real-time stock levels per warehouse with low-stock alert thresholds. Stock adjustment (add/reduce with reason). Multi-warehouse management. Inter-warehouse stock transfer with auto stock deduction and addition. Stock usage is auto-deducted when parts are recorded in Job Cards.

Billing Module

Files: quotations.php, invoices.php, invoice-add.php, invoice-view.php, payments.php, payment-add.php, expenses.php

Quotations with line items, GST calculation, and convert-to-invoice action. GST invoices with CGST/SGST/IGST breakdown, print-ready view, and PDF export. Payment recording with method tracking (Cash/UPI/Card/Cheque/Bank Transfer). Outstanding balance tracking per customer. Expense management with category, amount, receipt upload, and approval workflow (Submit → Approve/Reject).

Reports Module

Files: reports.php

All reports in one place with date range filters and export options. Service Report: by type, status, SLA compliance. Technician Performance: jobs completed, ratings, on-time %. Customer Activity: SR count, job count, revenue per customer. Finance Report: revenue trend, collection summary, payment methods. Management Dashboard: high-level KPIs. Inventory Report: low stock alert list, parts used per job. All reports support Excel/CSV download.

Settings Module

Files: company.php, branches.php, users.php, user-add.php, user-edit.php, roles.php, service-types.php, sla.php, profile.php, change-password.php

Company profile (name, logo, GSTIN, address, contact). Branch management for multi-location businesses. User management with role assignment. Visual roles & permissions matrix. Service Types configuration (AC, RO, CCTV, etc.). SLA policy setup (response time & resolution time by priority). Profile page and password change for logged-in users.

Features Overview

Technology stack and core capabilities

SLA Tracking

Automatic SLA timers on every service request. Visual breach alerts on dashboard and reports.

Live GPS Tracking

Real-time technician location map. Coordinates pushed from mobile app via REST endpoint.

AMC Management

Annual contract scheduling, visit history, expiry alerts, and renewal reminders.

Invoice Print & PDF

Print-ready GST invoice view with CGST/SGST/IGST. PDF export support built in.

Security

bcrypt password hashing, session timeout, CSRF protection, audit trail on every action.

Modern UI

Clean Bootstrap 5.3 responsive design with Inter font, Chart.js charts, and DataTables.

Dashboard Charts

Revenue trend bar chart, jobs-by-status doughnut, technician availability progress bars.

Technician Calendar

Monthly calendar showing each technician's scheduled jobs day by day.

Notifications

In-app notification center for new SRs, SLA breaches, AMC expiries, and job updates.

Technology Stack

LayerTechnologyNotes
BackendPHP 8.x (Native — no framework)PDO, sessions, OOP helper functions
DatabaseMySQL 5.7+ / MariaDBInnoDB, utf8mb4_unicode_ci, 40+ tables
FrontendHTML5, CSS3, Bootstrap 5.3Fully responsive, mobile-friendly
IconsBootstrap Icons 1.111,800+ icons, CDN loaded
FontsGoogle Fonts — Inter300–800 weights
ChartsChart.js 4.4Bar, doughnut, line charts on dashboard
TablesDataTables 1.13Search, sort, pagination on all lists
DropdownsSelect2 4.1Searchable selects for customers, technicians
Date PickersFlatpickrDate & time pickers on forms
AlertsSweetAlert2 11Confirm dialogs for delete & status changes
jQuery3.7.1AJAX calls, DOM helpers

Dashboard Previews

Visual overview of key screens in Pakhi FieldForce

Admin / Super Admin

Main Dashboard

Complete business overview — stats, charts, today's schedule, technician status & recent activity

/admin/index.php
🔔 4
SA
Total Customers
248
Active accounts
Open SR
34
Needs attention
Today's Jobs
18
6 completed
Overdue Jobs
5
SLA breached
Dashboard
MODULES
Service
Field
CRM
Inventory
Billing
Reports
SYSTEM
Settings
Today's Schedule
TimeJob #CustomerTechnicianStatus
09:00 AMJOB-00042Ravi KumarSuresh K.Completed
11:30 AMJOB-00043Metro StoreArjun P.In Progress
02:00 PMJOB-00044Priya ShahUnassignedNew
Revenue Chart Technician Status SLA Overdue Alert Jobs Doughnut Chart Recent Activity Log
Service Module

Service Requests

Full SR lifecycle with SLA timer, priority, assignment, and status tracking

/modules/service/service-requests.php
+ New SR
SM
New
12
Unassigned
In Progress
18
Active
On Hold
4
Waiting
Completed
89
This month
Dashboard
SERVICE
Requests
Work Orders
Job Cards
AMC
Warranty
Complaints
Recent Service Requests
SR #CustomerTypePrioritySLAStatus
SR-00123Ravi KumarAC RepairUrgent⚠ 1h leftAssigned
SR-00122City MallRO ServiceHigh✓ 8h leftIn Progress
SR-00121Priya ShahCCTV InstallNormal✓ 2d leftCompleted
SLA Timer Priority Flags Auto SR Number Technician Assign 12-Stage Status Flow
Field Module

Technicians & Live Tracking

Manage field engineers, view availability, assign jobs, and track locations in real-time

/modules/field/live-tracking.php
+ Add Technician
DI
Total
22
Technicians
Available
8
Ready
On Job
11
Active
Offline
3
Unavailable
Dashboard
FIELD
Live Tracking
Technicians
Teams
Assignment
Calendar
Attendance
Technician Status
NameSkillsZoneStatusCurrent Job
Suresh KumarAC, RONorthOn JobJOB-00043
Arjun PatelCCTV, SolarSouthAvailable—
Mohan ReddyElectricalEastOn Leave—
Real-time GPS Map Skills Matrix Zone Management Smart Assignment Monthly Calendar
Service Module

Job Card Detail

Full job execution record — parts, photos, customer signature, status updates, and billing

/modules/service/job-detail.php
+ New Job
SM
Job Number
JOB-00043
Today
Parts Used
3
Items
Job Amount
₹2,360
Incl. GST
Status
In Progress
Active
Dashboard
JOB DETAIL
Overview
Parts Used
Photos
Signature
Invoice
ACTIONS
Update Status
Parts Consumed
Part / ProductSKUQtyUnit PriceTotal
AC Filter 1 TonACFL-0011₹350₹350
Copper Pipe 6mmCOP-0062₹480₹960
Refrigerant Gas R32GAS-R321₹850₹850
Parts & Stock Deduction Photo Upload Customer Signature Generate Invoice 12-Stage Status
AMC / Billing

AMC Contracts & Billing

Annual Maintenance Contracts with visit tracking, expiry alerts, invoicing, and payment collection

/modules/service/amc.php  |  /modules/billing/invoices.php
+ New AMC
AC
Active AMC
64
Contracts
Expiring Soon
7
30-day alert
Outstanding
₹84K
Receivable
This Month Rev
₹3.2L
↑ Collected
Dashboard
SERVICE
AMC
Warranty
BILLING
Quotations
Invoices
Payments
Expenses
Active AMC Contracts
Contract #CustomerEquipmentExpiryStatus
AMC-0041City Hospital8 ACs (2 Ton)28 daysActive
AMC-0040Raju OfficeRO System x3142 daysActive
AMC-0039Metro MallCCTV 32-chExpiredExpired
AMC Visit Schedule Expiry Alerts GST Invoice PDF Payment Tracking Expense Approval

FAQ & Troubleshooting

Common issues and solutions

Database connection failed on first load

Check that MySQL is running in your WAMP/XAMPP tray. Open admin/config/database.php and verify the host, username, password, and database name. Ensure the database pakhi_fieldforce exists and the SQL file was imported. Also confirm that the PDO and PDO_MySQL PHP extensions are enabled in php.ini.

Login says "Invalid email or password"

Make sure the installer ran successfully and database/pakhi_fieldforce.sql was imported — it creates the default admin account. Default login: admin@pakhi.com / password. If the issue persists, run this SQL to reset the password:
UPDATE users SET password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' WHERE email = 'admin@pakhi.com'; (this sets password to password).

SQL file not found during installation

The installer looks for the SQL file at database/pakhi_fieldforce.sql (one level above the admin/ folder). Ensure the file exists at pakhi-fieldForce/database/pakhi_fieldforce.sql. If missing, import directly via phpMyAdmin instead.

stat() / function not found errors on dashboard

This happens when a PHP built-in function name collides with a custom helper. For example, calling stat() instead of dashStat() in index.php. Check all function calls in admin/index.php and make sure they use the correct function names defined in config/functions.php.

Uploaded files / images not saving

Ensure the admin/assets/uploads/ directory exists and is writable. On Linux: chmod 755 admin/assets/uploads/. On WAMP/XAMPP, right-click the folder → Properties → Security → allow write access. The max upload size is 5MB by default — increase in php.ini if needed: upload_max_filesize = 10M and post_max_size = 12M.

Charts not showing on dashboard

All JS libraries including Chart.js 4.4 are loaded via CDN from includes/footer.php. Ensure your server has internet access or host the libraries locally. Also check the browser console for JavaScript errors. Charts require <canvas id="revenueChart"> to be present in the page HTML.

Session times out too quickly

The default session timeout is 2 hours (7200 seconds). Change it in admin/config/constants.php: define('SESSION_TIMEOUT', 28800); for 8 hours. Users will be redirected to the login page with a ?timeout=1 parameter when the session expires.

How do I add a new service type (e.g. Solar Panels)?

Go to Settings → Service Types and click Add Service Type. Enter the name, description, and default SLA settings. The new type will appear automatically in Service Request and Job Card forms. No code change is needed.

How does Live GPS Tracking work?

The Live Tracking UI is pre-built and ready. GPS coordinates are stored in the technician_locations table and displayed on an interactive map. To enable live tracking, the technician's mobile app (Android/iOS) must POST latitude/longitude to the ajax/jobs.php endpoint with the technician's token. Contact our team for the mobile app integration guide.

How do I reset a user's password?

Admins can reset any user's password from Settings → Users → Edit User. Alternatively, update via SQL: generate the hash in PHP using echo password_hash('newpassword', PASSWORD_DEFAULT);, then run UPDATE users SET password = 'generated_hash' WHERE email = 'user@example.com'; in phpMyAdmin.

How do I add a new branch?

Go to Settings → Branches and click Add Branch. Enter the branch name, address, phone, and manager. Each user can be assigned to a specific branch. Reports and data can be filtered per branch across all modules.

Can I deploy this on a live hosting server?

Yes. Upload all files via FTP/cPanel File Manager, create a MySQL database on your hosting panel, import database/pakhi_fieldforce.sql, update admin/config/database.php with hosting DB credentials, and change APP_URL in constants.php to your live domain URL. Ensure mod_rewrite is enabled for Apache. Use HTTPS in production — update APP_URL to use https://.

Support

Get help with installation, customization, and deployment

ChannelDetails
Phone / WhatsApp+91 79058 34592
WhatsApp DirectClick to Chat on WhatsApp
Emailsupport@pakhigst.com
Websitewww.pakhigst.com
Support HoursMon – Sat, 10 AM – 7 PM IST
Free installation support is included. Call or WhatsApp +91 79058 34592 for custom module development, mobile app integration, GPS tracking setup, or live server deployment assistance.

Industries This System Serves

AC & HVAC

Installation, servicing, gas charging, AMC contracts.

RO / Water Purifier

Filter change, servicing, annual contracts.

CCTV & Security

Installation, DVR config, maintenance.

Solar

Panel installation, inverter service, inspections.

Electrical

Wiring, panel upgrades, breakdown calls.

Plumbing

Leak repair, pipeline work, sanitation.

Pest Control

Treatment scheduling, AMC, chemical tracking.

Appliance Repair

Washing machine, fridge, TV repair & service.

IT / Networking

Router, network setup, IT AMC, support visits.

Need Help or Customization?

Our team is available to help you tailor Pakhi FieldForce to your exact business — new modules, mobile app integration, GPS tracking, custom reports, or live server deployment.

WhatsApp Us Email Us