A modern, responsive admin dashboard for crisis and disaster management operations. Built with React 19 and TypeScript, featuring real-time incident tracking, hazard pack management, and interactive map visualization.
- Dashboard Overview — Real-time statistics and metrics for crisis operations
- Incident Management — Track, create, and manage incident reports
- Hazard Packs — Organize and deploy emergency response resources
- Interactive Map View — Visualize incidents and resources geographically using Leaflet
- User Profile & Settings — Customizable user preferences and system configuration
- Dark/Light Theme — Full theme support with smooth transitions
- Responsive Design — Optimized for desktop and mobile devices
| Category | Technology |
|---|---|
| Framework | React 19 |
| Language | TypeScript 5.6 |
| Build Tool | Vite 6 |
| Styling | Tailwind CSS 3.4 |
| Routing | React Router DOM 7 |
| Maps | Leaflet + React Leaflet |
| Icons | Lucide React |
- Node.js 18+
- npm or yarn
-
Clone the repository:
git clone https://github.com/your-username/crisisops-admin.git cd crisisops-admin -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:5173 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
src/
├── components/ # Reusable UI components
│ └── ThemeToggle.tsx
├── context/ # React context providers
│ └── ThemeContext.tsx
├── layouts/ # Layout components
│ └── DashboardLayout.tsx
├── pages/ # Page components
│ ├── OverviewPage.tsx
│ ├── IncidentsPage.tsx
│ ├── HazardPacksPage.tsx
│ ├── MapViewPage.tsx
│ ├── SettingsPage.tsx
│ ├── ProfilePage.tsx
│ └── LoginPage.tsx
├── App.tsx # Main application component
├── main.tsx # Application entry point
└── index.css # Global styles
Custom theme colors are defined in tailwind.config.js:
primary— Main brand color (#1e59f1)background-light/background-dark— Base backgroundssurface-dark/card-dark— Dark mode surfacesborder-dark— Dark mode borders
The application uses class-based dark mode. Toggle is available via the ThemeToggle component, with state managed through ThemeContext.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
Mosimiloluwa Adebisi
Built with ❤️ for emergency responders and crisis management teams.