DOJ CAD/MDT - Federal Law Enforcement System
Department of Justice Computer-Aided Dispatch / Mobile Data Terminal
A comprehensive web-based CAD/MDT (Computer-Aided Dispatch / Mobile Data Terminal) system designed for Federal Law Enforcement agencies including FBI, DEA, ATF, U.S. Marshals Service, HSI, CBP, and Secret Service.
π¨ System Overview
This system provides federal law enforcement officers with:
- Real-time dispatch management for calls for service
- Active incident tracking across multiple jurisdictions
- Unit status monitoring for all federal agencies
- NCIC database lookups for persons, vehicles, property, and firearms
- Warrant management and service tracking
- BOLO/ATL (Be On Lookout / Attempt to Locate) alerts
- Officer safety features including emergency alerts and backup requests
- Incident reporting and documentation
π Security & Compliance
β οΈ IMPORTANT: This is a demonstration system only. No actual NCIC database connections or law enforcement data is accessed or stored.
For production use, this system would require:
- CJIS (Criminal Justice Information Services) compliance
- Proper authentication and authorization
- Encrypted connections to NCIC and other federal databases
- Audit logging and access controls
- Multi-factor authentication
- Role-based access control (RBAC)
π― Features
Dispatch Management
- Priority-based call queue (Priority 1-3)
- Emergency, urgent, and routine call categorization
- Real-time call creation and assignment
- Call details with location, type, and caller information
- Quick view of all active calls by priority
Active Incidents
- Grid view of all active incidents
- Filter by incident type (assault, robbery, federal violations, etc.)
- Real-time status updates (active, pending, resolved)
- Incident details including location, assigned officer, and timestamps
Unit Status Board
- Overview of all federal law enforcement units
- Filter by agency (FBI, DEA, ATF, USMS, HSI, CBP, USSS)
- Real-time status tracking (available, busy, offline)
- Officer and callsign information
- Unit assignment tracking
Interactive Live Map πΊοΈ
- Real-time tactical map with Leaflet.js integration
- Unit location tracking with color-coded status markers
- Incident visualization on map with priority indicators
- Interactive controls to toggle units, incidents, and breadcrumb trails
- Map legend for easy identification of markers
- Centered on Washington DC with full pan and zoom capabilities
Real-Time Statistics Dashboard π
- Live statistics cards showing active calls, available units, response times, and priority 1 calls
- Call volume chart - hourly trends of incoming calls
- Incident type distribution - pie chart showing incident categories
- Unit status distribution - bar chart of unit availability
- Response time trends - weekly performance metrics
- Refresh button to update statistics on demand
- One-click status changes for common 10-codes
- 10-8 (Available), 10-23 (On Scene), 10-6 (Busy), 10-98 (Clear)
- Instant status updates with audio feedback
- Streamlined workflow for field officers
Theme Switcher π
- Dark/Light mode toggle for different lighting conditions
- Persistent theme preference saved in localStorage
- Professional dark theme for extended use
- Clean light theme for bright environments
- Smooth transition animations
Audio Notifications π
- Sound effects for different alert types
- Priority-based tones (emergency, urgent, informational)
- Text-to-speech announcements for critical alerts
- Toggle control to enable/disable audio
- Different frequencies for emergency, priority, info, and status updates
Keyboard Shortcuts β¨οΈ
- Alt + D - Jump to Dispatch view
- Alt + I - Jump to Incidents view
- Alt + M - Jump to Live Map
- Alt + N - Jump to NCIC Lookup
- Alt + S - Jump to Statistics
- Alt + T - Toggle Dark/Light theme
- Enhances efficiency for power users
NCIC Lookup System
Person Search:
- Name-based queries
- Date of birth verification
- SSN (last 4) lookup
- Driverβs license verification
- Warrant checks
- Criminal history queries
Vehicle Search:
- License plate lookups
- VIN queries
- Stolen vehicle checks
- Registration verification
Property Search:
- Serial number lookups
- Stolen property database
- Property type categorization
Firearm Search:
- Serial number verification
- Stolen firearm checks
- Make and model tracking
Warrant Management
- Active warrant tracking
- Filter by warrant type (arrest, search, bench, federal)
- Warrant details including offense and jurisdiction
- Service status tracking
BOLO/ATL System
- Be On Lookout alerts for persons and vehicles
- Detailed descriptions and reasons
- Timestamp tracking
- Multi-agency distribution
Officer Safety Features
- Emergency Alert Button - Sends immediate distress signal
- Request Backup - Quick backup request to nearby units
- Real-time location tracking (in production system)
- Officer safety notifications
System Monitoring
- Real-time system clock
- Activity feed with timestamp
- System alerts and notifications
- Unit status widget
π₯οΈ Technology Stack
- Frontend: HTML5, CSS3, JavaScript (Vanilla)
- Styling: Custom CSS with modern design patterns
- Mapping: Leaflet.js for interactive maps
- Charts: Chart.js for data visualization
- Audio: Web Audio API and Speech Synthesis API
- Storage: LocalStorage for demo purposes
- Architecture: Single-page application (SPA)
- Responsive: Mobile-friendly design
π Installation & Setup
Prerequisites
- Node.js 18.0.0 or higher
- npm (comes with Node.js)
- Docker (optional, for containerized deployment)
Local Development
- Clone the repository:
git clone https://github.com/schoolaccount76590/USFederalGov.git
cd USFederalGov
- Install dependencies:
- Configure environment (optional):
# Copy example environment file
cp .env.example .env
# Edit .env to customize settings (JWT_SECRET, etc.)
- Initialize and start the server:
- Access the system:
- Open your browser to
http://localhost:3000
- Youβll be redirected to the login page
Demo Credentials
The system comes pre-seeded with demo users:
- Badge Numbers:
FBI-001, DEA-001, USMS-001, ATF-001, HSI-001, CBP-001, DISPATCH-001
- Password:
password123 (same for all demo accounts)
Docker Deployment
- Build and run with Docker Compose:
- Or build manually:
docker build -t doj-cad-mdt .
docker run -p 3000:3000 -v cad-data:/app/data doj-cad-mdt
Cloud Deployment
The application is ready for deployment on various cloud platforms:
- Railway: Connect your GitHub repo for automatic deployment
- Render: Use the Dockerfile or Node.js environment
- Heroku: Deploy using the Dockerfile or buildpacks (see detailed guide below)
- DigitalOcean App Platform: Use the Dockerfile
- AWS/GCP/Azure: Deploy as a container or Node.js application
Heroku Deployment (Step-by-Step)
Follow these steps to deploy the application on Heroku:
Prerequisites
- Install the Heroku CLI:
- Create a Heroku account:
- Log in to Heroku:
Step 1: Create a New Heroku App
# Navigate to your project directory
cd USFederalGov
# Create a new Heroku app (replace 'your-app-name' with your desired name)
heroku create your-app-name
# Or let Heroku generate a random name
heroku create
Set the required environment variables on Heroku:
# Set JWT secret (use a secure random string in production)
heroku config:set JWT_SECRET=your-secure-jwt-secret-key
# Set cookie secret (use a secure random string in production)
heroku config:set COOKIE_SECRET=your-secure-cookie-secret
# Set Node environment to production
heroku config:set NODE_ENV=production
Important: Generate secure secrets for production:
# Generate a secure random string (example using Node.js)
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Step 3: Deploy to Heroku
Option A: Deploy via Git (Recommended)
# Add Heroku remote if not already added
heroku git:remote -a your-app-name
# Push your code to Heroku
git push heroku main
Option B: Deploy via GitHub Integration
- Go to your Heroku Dashboard
- Select your app
- Navigate to the βDeployβ tab
- Under βDeployment methodβ, select βGitHubβ
- Connect your GitHub account and select the repository
- Enable βAutomatic Deploysβ for continuous deployment (optional)
- Click βDeploy Branchβ to manually deploy
Step 4: Verify Deployment
# Open the application in your browser
heroku open
# Check the application logs
heroku logs --tail
Step 5: Post-Deployment
After deployment, access your application at:
https://your-app-name.herokuapp.com
Use the demo credentials to log in:
- Badge Numbers:
FBI-001, DEA-001, USMS-001, ATF-001, HSI-001, CBP-001, DISPATCH-001
- Password:
password123
Troubleshooting Heroku Deployment
- View logs:
- Restart the application:
- Check app status:
- Run database initialization manually (if needed):
heroku run npm run db:init
- Check environment variables:
Heroku Configuration Notes
- The application uses SQLite with
better-sqlite3, which stores data in the ephemeral file system. For production use with persistent data, consider using a database add-on like Heroku Postgres.
- Heroku automatically sets the
PORT environment variable, which the application reads.
- The
Procfile in the repository root tells Heroku how to start the application.
π File Structure
/
βββ server/ # Backend server
β βββ index.js # Express server entry point
β βββ db/
β β βββ connection.js # SQLite database connection
β β βββ init.js # Database initialization & seeding
β βββ middleware/
β β βββ auth.js # JWT authentication middleware
β βββ routes/
β βββ auth.js # Authentication routes
β βββ calls.js # Dispatch calls API
β βββ incidents.js # Incidents API
β βββ units.js # Units status API
β βββ warrants.js # Warrants API
β βββ bolo.js # BOLO alerts API
β βββ ncic.js # NCIC lookups (demo)
βββ public/ # Frontend static files
β βββ index.html # Main CAD/MDT interface
β βββ login.html # Authentication page
β βββ styles.css # System stylesheet
β βββ js/
β β βββ main.js # Frontend JavaScript
β βββ assets/
β βββ doj-seal.svg # Department of Justice seal
βββ data/ # SQLite database (auto-created)
βββ package.json # Node.js dependencies
βββ Procfile # Heroku deployment configuration
βββ Dockerfile # Docker container configuration
βββ docker-compose.yml # Docker Compose configuration
βββ .env.example # Environment variables template
βββ README.md # This file
βββ LICENSE # Apache 2.0 License
π¨ User Interface
Color Scheme
- DOJ Blue: #003366 - Primary brand color
- DOJ Gold: #C69C6D - Accent color
- Dark Theme: Professional dark interface for extended use
- Priority Colors:
- Priority 1 (Emergency): Red
- Priority 2 (Urgent): Yellow/Orange
- Priority 3 (Routine): Green
Navigation
- Sidebar: Primary navigation with icons
- Main Content: Dynamic view switching
- Right Panel: System alerts and activity feed
- Responsive: Adapts to mobile and tablet devices
π§ Configuration
For production deployment, you would need to configure:
- Database Connections
- NCIC database credentials
- Local incident database
- Warrant database
- Unit tracking system
- Authentication
- LDAP/Active Directory integration
- Multi-factor authentication
- Session management
- Token-based API authentication
- API Endpoints
- NCIC API integration
- Regional/local CAD integration
- Federal agency databases
- GIS/mapping services
- Security
- SSL/TLS certificates
- Firewall configuration
- Access control lists
- Audit logging
π± Mobile Access
The system is fully responsive and can be accessed from:
- Desktop computers (recommended)
- Tablets (MDT use in vehicles)
- Mobile devices (field access)
π― Use Cases
Dispatch Center
- Monitor all active calls
- Assign units to incidents
- Track unit locations and status
- Coordinate multi-agency responses
Mobile Data Terminal (MDT)
- Vehicle-mounted tablet access
- Quick NCIC lookups during traffic stops
- Update unit status
- View active incidents and BOLOs
Field Officer
- Check warrants on mobile device
- Run plate and person checks
- Request backup
- Update incident status
β οΈ Disclaimer
This is a demonstration system for educational purposes only.
- No actual law enforcement data is accessed
- No NCIC database connections are made
- All search results are simulated
- Not certified for actual law enforcement use
- Does not meet CJIS compliance requirements
For actual law enforcement use, this system would require:
- Proper CJIS certification
- Federal database access authorization
- Security audits and penetration testing
- 24/7 monitoring and support
- Disaster recovery and backup systems
- Legal compliance review
π€ Federal Agencies Supported
- FBI - Federal Bureau of Investigation
- DEA - Drug Enforcement Administration
- ATF - Bureau of Alcohol, Tobacco, Firearms and Explosives
- USMS - United States Marshals Service
- HSI - Homeland Security Investigations
- CBP - Customs and Border Protection
- USSS - United States Secret Service
π License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
π Privacy & Data Protection
This demonstration system:
- Does not collect personal information
- Does not store law enforcement data
- Uses only localStorage for demo purposes
- Does not transmit data to external servers
π Support
This is a demonstration project. For questions or issues:
- Open an issue on GitHub
- Review the documentation
- Check the demo features
π Educational Purpose
This system is designed to demonstrate:
- Modern web application development
- Public safety software design
- CAD/MDT user interface patterns
- Federal law enforcement workflows
- Real-time dispatch systems
Built for demonstration and educational purposes
Not affiliated with the Department of Justice or any federal agency
Β© 2024 Demo System - Not for actual law enforcement use