PrashantKhatiwada/pulsePoint

β˜… 0Forks 1JavaScriptGitHub β†—Compare

README

πŸ—ΊοΈ Crisis Reporting Map App

This project is a real-time, interactive crisis reporting system where users can:

  • View nearby crisis incidents (fires, medical emergencies, infrastructure issues, etc.) plotted on a map πŸ—ΊοΈ
  • See live markers based on urgency level (Critical, High, Medium, Low)
  • Track their own location and recent reports
  • Search and filter crisis reports
  • Zoom and center the map easily with custom controls

Built using React.js, React-Leaflet, Lucide Icons, and TailwindCSS.


πŸš€ Features

  • πŸ“ Map view with custom dynamic markers (color-coded by urgency)
  • πŸ“‘ User's current location shown on the map
  • πŸ” Search and filter through crisis reports
  • πŸŽ›οΈ Zoom in, zoom out, locate me buttons
  • πŸ—‚οΈ Categorized icons (Fire, Medical, Police, Infrastructure, Natural Disaster, etc.)
  • ⚑ Animated markers and loading optimization to prevent crashes
  • πŸ“± Responsive design ready for mobile and desktop

πŸ› οΈ Technologies Used

  • React.js β€” Frontend Framework
  • React-Leaflet β€” For interactive map and markers
  • Leaflet.js β€” Map engine
  • TailwindCSS β€” For clean styling
  • Lucide-React β€” Beautiful SVG icons
  • Framer Motion β€” Animations for smooth UI interactions
  • Vite (optional) β€” For fast development server

πŸ“¦ Installation

Clone this repo and install dependencies:

git clone https://github.com/PrashantKhatiwada/pulsePoint.git
cd pulsePoint
npm install

Start the development server:

npm run dev

Make sure you have Node.js and npm installed.


πŸ“‹ Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ MapView.jsx        # Map with markers and user location
β”‚   β”œβ”€β”€ ReportsList.jsx    # Sidebar list of crisis reports
β”‚   └── ui/                # Reusable UI components (Button, Badge, Card, etc.)
β”œβ”€β”€ api/                   # (Optional) Fetch reports from backend
β”œβ”€β”€ App.jsx                # Main app
└── index.jsx              # App entry point

βš™οΈ How it works

  • Map loads centered either at the user's geolocation or a default position (Caldwell, NJ).
  • Crisis reports are dynamically fetched or submitted and shown as markers.
  • Each marker shows detailed information in a popup.
  • The user can locate themselves, zoom the map, and interact with the reports list.

πŸ“Έ Screenshots

Map View Report Popup
Map Screenshot Popup Screenshot

(Replace placeholder links with your real screenshots!)


🚧 Future Improvements

  • Add report submission form (with location picker)
  • Real-time WebSocket updates for live crisis monitoring
  • Cluster markers when zoomed out
  • Auto-fit map bounds to all visible markers
  • Add user authentication and roles (admin, volunteer, public)

πŸ™Œ Acknowledgements


πŸ“„ License

This project is licensed under the MIT License.
Feel free to use and modify it for your own projects!


πŸš€ Let's make the world safer one marker at a time!

Contributors

Nkhanal2002PrashantKhatiwada

Issues