Deploy to Production / Build & Verify (push) Has been cancelled
Deploy to Production / Pre-Deploy Tests (push) Has been cancelled
Deploy to Production / Deploy to Railway (push) Has been cancelled
Deploy to Production / Deploy to Render (push) Has been cancelled
Deploy to Production / Deploy to VPS (PM2) (push) Has been cancelled
Deploy to Production / Deploy to Fly.io (push) Has been cancelled
Deploy to Production / Post-Deploy Verification (push) Has been cancelled
Deploy to Production / Notify on Failure (push) Has been cancelled
E2E Test Suite / Smoke Tests (P0) (push) Has been cancelled
E2E Test Suite / Critical User Journeys (push) Has been cancelled
E2E Test Suite / API Integration Tests (push) Has been cancelled
E2E Test Suite / Form Interaction Tests (push) Has been cancelled
E2E Test Suite / Destructive & Chaos Tests (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (chromium) (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (firefox) (push) Has been cancelled
E2E Test Suite / Cross-Browser Regression (webkit) (push) Has been cancelled
E2E Test Suite / Mobile Device Tests (push) Has been cancelled
E2E Test Suite / Security Header Tests (push) Has been cancelled
E2E Test Suite / Test Report Summary (push) Has been cancelled
Ping Search Engines / Notify Search Engines (push) Failing after 13m25s
Add five SEO landing pages under /services that reuse existing section components (GuaranteeBand, InlineLeadForm) and a new prop-driven ServiceFaq: - /services/custom-erp-development - /services/university-erp - /services/government-it-solutions-gem-vendor - /services/police-management-system - /services/react-native-app-development Each page has 1,000+ words of specific copy, a real portfolio-backed case study (IIT Patna, PSCL Bihar, Police MS, Pophealth), a comparison table / stat block, a page-specific FAQ that feeds the FAQPage schema, and a CTA into the existing inline lead form (/api/contact). Service + FAQ + BreadcrumbList schema are passed into SEO.astro; the visible FAQ accordion does not duplicate the JSON-LD. All company stats match the canonical site-wide set. Wire the pages into navigation: deep-dive links from the /services detail sections, a new "Solutions" group on the HTML sitemap, and entries in both the dynamic sitemap.xml.ts and the served static public/sitemap.xml. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
286 lines
18 KiB
Plaintext
286 lines
18 KiB
Plaintext
---
|
||
// 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>
|