---
// Police Management System — keyword-focused service landing page.
// Reuses GuaranteeBand, InlineLeadForm and ServiceFaq, and feeds Service + FAQ
// schema into SEO.astro.
//
// Case-study numbers are taken verbatim from the Police Management System
// entry on /portfolio: 11 districts · 15,000+ officers · 100,000+ cases.
import BaseLayout from '../../layouts/BaseLayout.astro';
import SEO from '../../components/SEO.astro';
import GuaranteeBand from '../../components/GuaranteeBand.astro';
import InlineLeadForm from '../../components/InlineLeadForm.astro';
import ServiceFaq from '../../components/ServiceFaq.astro';

const pageTitle = 'Police Management System Development';
const pageDescription =
  'Custom Police Management System development — FIR digitisation, case tracking, personnel & duty rosters. WorkRoot’s platform runs across 11 Bihar districts for 15,000+ officers.';

const serviceName = 'Police Management System Development';
const serviceDescription =
  'Custom Police Management System software for state and district law-enforcement bodies — FIR digitisation, case tracking, personnel management, duty-roster scheduling, and real-time reporting with role-based access control. Built on Spring Boot and Angular, deployed across 11 districts in Bihar for 15,000+ officers.';

const modules = [
  { title: 'FIR digitisation', body: 'Digital First Information Reports with structured capture, search, and status tracking — replacing paper registers.' },
  { title: 'Case tracking', body: 'End-to-end case lifecycle from registration to disposal, with 100,000+ cases tracked in production.' },
  { title: 'Personnel management', body: 'Officer records, postings, transfers, and service history for 15,000+ personnel.' },
  { title: 'Duty roster scheduling', body: 'Automated duty rosters and shift planning that remove manual scheduling errors.' },
  { title: 'Reporting dashboards', body: 'Real-time dashboards for district and HQ oversight, with scheduled compliance exports.' },
  { title: 'Role-based access control', body: 'Granular permissions by rank, role, and district, with full audit logging of sensitive actions.' },
];

const stats = [
  { value: '11', label: 'Districts deployed' },
  { value: '15,000+', label: 'Officers managed' },
  { value: '100,000+', label: 'Cases tracked' },
  { value: '99.9%', label: 'Uptime' },
];

// Before/after comparison stat-table: manual processes vs the digital system.
const comparison = [
  { dimension: 'FIR filing', before: 'Paper registers, no central search', after: 'Digital FIRs, searchable across districts' },
  { dimension: 'Case status', before: 'Manual file movement, opaque', after: 'Real-time tracking from registration to disposal' },
  { dimension: 'Personnel records', before: 'District-siloed paper files', after: 'Unified service records for 15,000+ officers' },
  { dimension: 'Duty rosters', before: 'Hand-written, error-prone', after: 'Automated scheduling with conflict checks' },
  { dimension: 'Oversight', before: 'Periodic manual compilation', after: 'Live dashboards for HQ and districts' },
  { dimension: 'Data consistency', before: 'Inconsistent across 11 districts', after: 'Single source of truth with audit trail' },
];

const faqs = [
  {
    question: 'Have you built a police management system before?',
    answer:
      'Yes. WorkRoot developed and deployed a Police Management System for the Bihar State Government across 11 districts. It handles personnel management, FIR digitisation, case tracking, and duty-roster scheduling for 15,000+ officers and 100,000+ cases at 99.9% uptime.',
  },
  {
    question: 'What modules does a police management system include?',
    answer:
      'Core modules are FIR digitisation, case tracking, personnel management, duty-roster scheduling, real-time reporting dashboards, and role-based access control with audit logging. We tailor the module set to your jurisdiction’s workflow during scoping.',
  },
  {
    question: 'How do you secure sensitive law-enforcement data?',
    answer:
      'Through defence-in-depth: role-based access control by rank and district, encryption at rest and in transit, immutable audit logging of every sensitive action, and OWASP-aligned security reviews. The system is built to strict security compliance for thousands of concurrent users.',
  },
  {
    question: 'Can the system scale across many districts?',
    answer:
      'Yes. Our multi-district architecture uses a database-per-district model with central aggregation, so each district’s data stays isolated while HQ gets a consolidated view. The live Bihar deployment already spans 11 districts on a single codebase.',
  },
  {
    question: 'How long does deployment take?',
    answer:
      'Timelines depend on the number of modules and districts. We deliver a usable first module in weeks and roll out district-by-district to manage change and training. We share a detailed plan after the discovery phase.',
  },
  {
    question: 'What technology stack do you use?',
    answer:
      'The police platform is built on Spring Boot for the backend, Angular for the interface, and MySQL for the data layer — chosen for security, maintainability, and performance under heavy concurrent load.',
  },
];
---

<BaseLayout title={pageTitle} description={pageDescription}>
  <SEO
    slot="head"
    type="Service"
    breadcrumbs={[
      { name: 'Home', url: '/' },
      { name: 'Services', url: '/services' },
      { name: 'Police Management System', url: '/services/police-management-system' },
    ]}
    service={{ name: serviceName, description: serviceDescription }}
    faq={faqs}
  />

  <!-- Hero -->
  <section class="relative bg-gradient-to-br from-secondary-900 via-secondary-800 to-secondary-900 py-20 lg:py-28 overflow-hidden">
    <div class="absolute inset-0 overflow-hidden pointer-events-none" aria-hidden="true">
      <div class="absolute top-1/4 left-0 w-80 h-80 bg-red-500/10 rounded-full blur-3xl animate-pulse-slower"></div>
      <div class="absolute bottom-0 right-1/4 w-96 h-96 bg-orange-500/10 rounded-full blur-3xl animate-pulse-slow"></div>
      <div class="absolute inset-0 opacity-5" style="background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 60px 60px;"></div>
    </div>
    <div class="container-wrapper relative">
      <div class="max-w-3xl">
        <nav aria-label="Breadcrumb" class="mb-6">
          <ol class="flex flex-wrap items-center gap-2 text-sm text-secondary-400">
            <li><a href="/" class="hover:text-primary-300">Home</a></li>
            <li aria-hidden="true">/</li>
            <li><a href="/services" class="hover:text-primary-300">Services</a></li>
            <li aria-hidden="true">/</li>
            <li class="text-secondary-200" aria-current="page">Police Management System</li>
          </ol>
        </nav>
        <span class="inline-flex items-center gap-2 px-4 py-1.5 mb-6 text-sm font-semibold text-red-300 bg-red-500/10 rounded-full border border-red-500/20">
          <span class="w-1.5 h-1.5 rounded-full bg-red-400 animate-pulse" aria-hidden="true"></span>
          Law-enforcement software
        </span>
        <h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight">
          Police Management System
          <span class="text-transparent bg-clip-text bg-gradient-to-r from-red-400 via-orange-300 to-amber-300"> proven across 11 districts.</span>
        </h1>
        <p class="text-lg sm:text-xl text-secondary-300 max-w-2xl mb-8 leading-relaxed">
          Digitise FIRs, case tracking, personnel records, and duty rosters in one secure platform — the system we built for the
          Bihar State Government already serves 15,000+ officers and tracks 100,000+ cases at 99.9% uptime.
        </p>
        <div class="flex flex-col sm:flex-row gap-4">
          <a href="#inline-lead-form" data-cta="police-hero-primary" class="inline-flex items-center justify-center rounded-xl bg-gradient-to-r from-primary-500 to-primary-600 px-8 py-4 text-base font-bold text-white shadow-lg hover:shadow-xl hover:scale-105 transition-all focus:outline-none focus:ring-2 focus:ring-primary-400 focus:ring-offset-2 focus:ring-offset-secondary-900">
            Discuss your deployment
            <svg class="ml-2 w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M17 8l4 4m0 0l-4 4m4-4H3" /></svg>
          </a>
          <a href="tel:+919561417403" data-cta="police-hero-call" class="inline-flex items-center justify-center rounded-xl border-2 border-white/30 bg-white/5 px-8 py-4 text-base font-bold text-white hover:bg-white/10 transition-all focus:outline-none focus:ring-2 focus:ring-white/50">
            Talk to our team
          </a>
        </div>
      </div>

      <div class="mt-14 grid grid-cols-2 sm:grid-cols-4 gap-4 lg:gap-6">
        {stats.map((stat) => (
          <div class="bg-white/5 backdrop-blur-sm rounded-xl p-4 lg:p-5 text-center border border-white/10">
            <p class="text-2xl lg:text-3xl font-bold text-white">{stat.value}</p>
            <p class="text-secondary-400 text-sm mt-1">{stat.label}</p>
          </div>
        ))}
      </div>
    </div>
  </section>

  <!-- Overview -->
  <section class="py-16 lg:py-24 bg-white dark:bg-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-3xl mx-auto">
        <span class="text-red-500 dark:text-red-400 font-semibold text-sm uppercase tracking-wider">Built for the field</span>
        <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mt-2 mb-6">From paper registers to a single digital system of record</h2>
        <div class="space-y-5 text-lg text-secondary-700 dark:text-secondary-300 leading-relaxed">
          <p>
            Before digitisation, police departments across Bihar’s districts relied on paper-based processes for FIR filing, case
            tracking, and personnel management. The result was the familiar pattern: delays moving files between offices,
            inconsistent records from one district to the next, and no way for headquarters to see the current picture without a
            manual compilation. WorkRoot was engaged to replace that with one centralised, secure system.
          </p>
          <p>
            We built a Police Management System on a <strong>Spring Boot</strong> backend and an <strong>Angular</strong>
            interface, backed by <strong>MySQL</strong>, and deployed it across <strong>11 districts</strong> for the Bihar State
            Government. The platform digitises First Information Reports, tracks cases through their full lifecycle, manages
            personnel records and postings for <strong>15,000+ officers</strong>, and automates duty-roster scheduling. To date it
            has handled <strong>100,000+ cases</strong> while sustaining 99.9% uptime under thousands of concurrent users.
          </p>
          <p>
            Security and accountability were non-negotiable. Access is governed by role-based permissions tied to rank, role, and
            district; every sensitive action is written to an immutable audit log; and data is encrypted both at rest and in
            transit. The architecture keeps each district’s data isolated while still rolling up a real-time view for district and
            HQ leadership through reporting dashboards — so oversight is continuous rather than periodic.
          </p>
          <p>
            The project spanned four years of delivery and iteration (2018–2022), and the lessons from running at that scale —
            offline resilience for field-critical modules, audit logging baked into the data layer, and district-by-district
            rollout to manage training and change — now inform every law-enforcement and government engagement we take on. If your
            department needs to retire paper and unify records across jurisdictions, we have done exactly that in production.
          </p>
        </div>
      </div>
    </div>
  </section>

  <!-- Modules grid -->
  <section class="py-16 lg:py-24 bg-secondary-50 dark:bg-secondary-800/50">
    <div class="container-wrapper">
      <div class="text-center max-w-2xl mx-auto mb-12">
        <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mb-4">Core modules</h2>
        <p class="text-secondary-600 dark:text-secondary-400 text-lg">Each module is running in the live Bihar deployment.</p>
      </div>
      <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
        {modules.map((m) => (
          <div class="bg-white dark:bg-secondary-800 rounded-2xl p-7 border border-secondary-100 dark:border-secondary-700 shadow-sm hover:shadow-lg transition-shadow">
            <div class="w-12 h-12 rounded-xl bg-red-50 dark:bg-red-900/30 text-red-600 dark:text-red-300 flex items-center justify-center mb-4" aria-hidden="true">
              <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>
            </div>
            <h3 class="text-lg font-bold text-secondary-900 dark:text-secondary-100 mb-2">{m.title}</h3>
            <p class="text-secondary-600 dark:text-secondary-400 text-sm leading-relaxed">{m.body}</p>
          </div>
        ))}
      </div>
    </div>
  </section>

  <!-- Before/after comparison -->
  <section class="py-16 lg:py-24 bg-white dark:bg-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-4xl mx-auto">
        <div class="text-center mb-10">
          <h2 class="text-3xl sm:text-4xl font-bold text-secondary-900 dark:text-secondary-100 mb-4">Before and after digitisation</h2>
          <p class="text-secondary-600 dark:text-secondary-400 text-lg">The operational change a unified system delivers.</p>
        </div>
        <div class="overflow-x-auto rounded-2xl border border-secondary-200 dark:border-secondary-700 shadow-sm">
          <table class="w-full text-left border-collapse min-w-[640px]">
            <caption class="sr-only">Police operations before and after deploying the WorkRoot Police Management System</caption>
            <thead>
              <tr class="bg-secondary-50 dark:bg-secondary-800">
                <th scope="col" class="px-5 py-4 text-sm font-bold text-secondary-700 dark:text-secondary-200">Area</th>
                <th scope="col" class="px-5 py-4 text-sm font-bold text-secondary-500 dark:text-secondary-400">Before (manual)</th>
                <th scope="col" class="px-5 py-4 text-sm font-bold text-primary-700 dark:text-primary-300">After (WorkRoot)</th>
              </tr>
            </thead>
            <tbody>
              {comparison.map((row, i) => (
                <tr class={i % 2 === 0 ? 'bg-white dark:bg-secondary-900' : 'bg-secondary-50/50 dark:bg-secondary-800/40'}>
                  <th scope="row" class="px-5 py-4 text-sm font-semibold text-secondary-900 dark:text-secondary-100 align-top">{row.dimension}</th>
                  <td class="px-5 py-4 text-sm text-secondary-600 dark:text-secondary-400 align-top">{row.before}</td>
                  <td class="px-5 py-4 text-sm text-secondary-700 dark:text-secondary-200 align-top font-medium">
                    <span class="inline-flex items-start gap-2">
                      <svg class="w-4 h-4 mt-0.5 flex-shrink-0 text-emerald-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" /></svg>
                      {row.after}
                    </span>
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </section>

  <!-- Case study highlight -->
  <section class="py-16 lg:py-24 bg-gradient-to-br from-secondary-900 via-secondary-800 to-secondary-900">
    <div class="container-wrapper">
      <div class="max-w-4xl mx-auto">
        <span class="inline-flex items-center gap-2 px-4 py-1.5 mb-5 text-sm font-semibold text-red-300 bg-red-500/10 rounded-full border border-red-500/20">Case study · Government</span>
        <h2 class="text-3xl sm:text-4xl font-bold text-white mb-4">Bihar State Government — Police Management System</h2>
        <p class="text-lg text-secondary-300 leading-relaxed mb-8">
          A four-year engagement (2018–2022) delivering a centralised platform across 11 districts, built to handle thousands of
          concurrent users with role-based access control and strict security compliance. It remains a reference point for how we
          approach multi-district public-sector software.
        </p>
        <div class="grid grid-cols-3 gap-4 mb-8">
          {[{ v: '11', l: 'Districts' }, { v: '15,000+', l: 'Officers' }, { v: '100,000+', l: 'Cases' }].map((s) => (
            <div class="bg-white/5 border border-white/10 rounded-xl p-5 text-center">
              <p class="text-2xl sm:text-3xl font-bold text-white">{s.v}</p>
              <p class="text-secondary-400 text-xs sm:text-sm mt-1">{s.l}</p>
            </div>
          ))}
        </div>
        <div class="flex flex-wrap gap-4">
          <a href="/portfolio#police-management" class="inline-flex items-center gap-2 text-primary-300 font-semibold hover:text-primary-200">
            Read the full case study
            <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3" /></svg>
          </a>
          <a href="/services/government-it-solutions-gem-vendor" class="inline-flex items-center gap-2 text-secondary-300 font-semibold hover:text-white">
            See all government IT solutions
            <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7" /></svg>
          </a>
        </div>
      </div>
    </div>
  </section>

  <ServiceFaq
    faqs={faqs}
    eyebrow="For law-enforcement buyers"
    heading="Police Management System — your questions answered"
    subheading="Track record, modules, security, multi-district scale, and the stack we use."
  />

  <GuaranteeBand />
  <InlineLeadForm />
</BaseLayout>
