# Feuerwehr Dashboard - Frontend

React + TypeScript + Vite frontend application for the fire department dashboard.

## Tech Stack

- **React 18.2** - UI library
- **TypeScript 5.2** - Type safety
- **Vite 5.0** - Build tool and dev server
- **React Router DOM 6.20** - Client-side routing
- **Material-UI 5.14** - Component library
- **Axios** - HTTP client
- **Emotion** - CSS-in-JS styling

## Project Structure

```
frontend/
├── src/
│   ├── components/          # Reusable UI components
│   │   ├── auth/           # Authentication components
│   │   ├── dashboard/      # Dashboard-specific components
│   │   └── shared/         # Shared components
│   ├── contexts/           # React contexts for state management
│   ├── pages/              # Page components
│   │   ├── Login.tsx
│   │   ├── Dashboard.tsx
│   │   └── NotFound.tsx
│   ├── services/           # API service layer
│   ├── types/              # TypeScript type definitions
│   ├── utils/              # Utility functions
│   ├── App.tsx             # Root component with routing
│   ├── main.tsx            # Application entry point
│   └── vite-env.d.ts       # Vite environment types
├── index.html              # HTML template
├── vite.config.ts          # Vite configuration
├── tsconfig.json           # TypeScript configuration
├── tsconfig.node.json      # TypeScript config for Node
└── package.json            # Dependencies and scripts
```

## Getting Started

### Prerequisites

- Node.js 18+ and npm

### Installation

```bash
npm install
```

### Development

Start the development server:

```bash
npm run dev
```

The application will be available at `http://localhost:5173`

### Build

Create a production build:

```bash
npm run build
```

The build output will be in the `dist/` directory.

### Preview

Preview the production build:

```bash
npm run preview
```

## Environment Variables

Create a `.env.development` file for development:

```
VITE_API_URL=http://localhost:3000
```

For production, create a `.env.production` file with appropriate values.

## Available Scripts

- `npm run dev` - Start development server
- `npm run build` - Create production build
- `npm run preview` - Preview production build locally
- `npm run lint` - Run ESLint (when configured)

## Routing

The application uses React Router with the following routes:

- `/` - Login page (default)
- `/login` - Login page
- `/dashboard` - Dashboard (main application)
- `/*` - 404 Not Found page

## Features

### Current

- Basic routing structure
- Login page with Material-UI
- Dashboard placeholder
- 404 Not Found page
- Material-UI theming
- TypeScript type safety

### Planned

- Authentication context and JWT handling
- Protected routes
- API integration
- Member management
- Vehicle tracking
- Equipment inventory
- Incident reporting
- And more...

## Configuration

### Vite Configuration

The `vite.config.ts` includes:

- React plugin
- Path alias (`@/` → `./src/`)
- Dev server on port 5173
- API proxy to backend (`/api` → `http://localhost:3000`)
- Source maps for production builds

### TypeScript Configuration

Strict mode enabled with:

- ES2020 target
- Bundler module resolution
- Path mapping for `@/` imports
- Strict type checking

## Styling

Material-UI with custom theme:

- Primary color: Red (#d32f2f) - Fire department theme
- Secondary color: Blue (#1976d2)
- Light mode by default
- Emotion for CSS-in-JS

## Development Notes

- All pages are currently placeholders
- Authentication is not yet implemented
- API integration pending
- Add actual business logic as backend becomes available
