A national security intelligence platform for the Nigerian government. Built with Next.js 15, featuring real-time incident tracking, satellite imagery integration, and drone coordination capabilities.
- Incident Management - Report, track, and manage security incidents across Nigeria
- Interactive Map - Real-time visualization of incidents on an interactive Nigeria map
- Satellite Integration - Planet.com API integration for satellite imagery surveillance
- Drone Coordination - Mock deployment workflow for drone response coordination
- Dashboard Analytics - Statistics and overview of security situation
- Framework: Next.js 15 (App Router)
- Mapping: Leaflet
- Satellite API: Planet.com
- Database: In-memory (Supabase optional)
- Styling: Tailwind CSS
- Language: TypeScript
- Node.js 18+
- npm
- Planet.com API key (for satellite features)
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Start development server
npm run devOpen http://localhost:3000 to view the application.
Create .env.local:
# Planet.com Satellite API
PLANET_API_KEY=your_planet_api_key
# App Configuration
NEXT_PUBLIC_APP_NAME=FalconWatch
NEXT_PUBLIC_URL=http://localhost:3000
# Optional: Supabase (for persistent storage)
# NEXT_PUBLIC_SUPABASE_URL=
# NEXT_PUBLIC_SUPABASE_ANON_KEY=
# Optional: OpenAI (for future AI features)
# OPENAI_API_KEY=app/
├── api/
│ ├── incidents/ # Incident CRUD operations
│ ├── satellite/ # Planet.com satellite search
│ ├── drone/ # Mock drone deployment
│ └── stats/ # Dashboard statistics
├── components/
│ ├── NigeriaMap.tsx
│ ├── IncidentCard.tsx
│ ├── IncidentForm.tsx
│ ├── SatellitePanel.tsx
│ ├── DroneDeployButton.tsx
│ └── CommandSidebar.tsx
├── dashboard/ # Main command center
├── incidents/ # Incident pages
│ ├── new/ # Report new incident
│ └── [id]/ # Incident detail
└── admin/ # System settings
lib/
├── planet-api.ts # Planet.com integration
├── incident-service.ts # Incident storage
├── drone-service.ts # Drone operations
└── nigeria-geo.ts # Geographic utilities
types/
├── incidents.ts
├── satellite.ts
└── drone.ts
| Route | Description |
|---|---|
/ |
Landing page |
/dashboard |
Main command center with map and stats |
/incidents |
Incident list with filters |
/incidents/new |
Report new incident |
/incidents/[id] |
Incident detail view |
/admin |
System settings |
- Kidnapping/Hostage
- Armed Robbery
- Border Incursion
- Pipeline Vandalism
- Bandit Activity
- Cattle Rustling
- Terrorism
- Other Security Threat
| Level | Color | Description |
|---|---|---|
| Critical | Red | Immediate response needed |
| High | Orange | Urgent attention required |
| Medium | Yellow | Standard response |
| Low | Green | Monitor situation |
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint- Push to GitHub
- Import project in Vercel
- Add environment variables
- Deploy
MIT