A modern, mobile-first web application designed to locate and display details about police and fire stations in Romania. Built with React, TypeScript, and Tailwind CSS, featuring a premium UI and real-time map data.
-
Interactive Map:
- View police and fire stations on a dynamic map.
- Auto-centers on your location (with permission).
- Dark/Light Mode support with custom map tiles (CartoDB Voyager & Stadia Alidade Smooth Dark).
- Clustering and custom markers with status indicators.
-
Live Data:
- Fetches real-time station data from OpenStreetMap (Overpass API).
- Smart caching to minimize API calls and enhance performance.
-
Station Details:
- Comprehensive details page for each station.
- Interactive mini-map previews using a tile grid system.
- One-tap navigation and calling features.
-
Modern UI/UX:
- Glassmorphism effects and smooth transitions.
- Fully responsive design optimized for mobile devices.
- PWA-ready architecture (deployable as an app).
- Frontend Framework: React 19 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Maps: React Leaflet + OpenStreetMap + Overpass API
- Icons: React Icons (Material Design)
- Deployment: GitHub Pages (Automated via GitHub Actions)
- Node.js (v20 or newer recommended)
- npm or yarn
-
Clone the repository:
git clone https://github.com/VICHiNG16/PoliceApp.git cd PoliceApp -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Building for production:
npm run build
This project is configured with Capacitor to run as a native Android/iOS app.
-
Sync with Android project:
npx cap sync android
-
Run on Android device:
npx cap run android
Check out the live version here: https://viching16.github.io/PoliceApp/
Developed with ❤️.