Simple mapping app built with React, TypeScript and Vite.
- A small web app that shows map markers, reads Excel data, and uses live/location features.
- Built with
React,TypeScript, andVite. It usesleafletandreact-leafletfor maps.
- Source: This repository
- Run locally:
npm run dev
Main folders:
public/python/- some Python helper scripts and excel sheetssrc/- application source codereact/- main React entry andApp.tsx(src/react/main.tsxandsrc/react/App.tsx)add/- extra features and componentscomponents/- map components used in the appcss/- CSS styles for the app and maphooks/- custom React hooks (location, search, locking, fetch excel, etc.)tools/- helper components likeMarkers.tsx,PopUp.tsx,Buttons.tsx
- Vite serves the React + TypeScript app in development and builds a static bundle for production.
leafletdisplays the map and markers;react-leafletprovides React bindings.- Excel spreadsheets are parsed with the
xlsxpackage when the app needs to import marker data. - Several small hooks provide features like live location tracking, search, and UI locking.
- Node.js (recommend LTS, Node 18+)
- npm (or yarn/pnpm — the scripts below use npm)
Install dependencies:
npm installRun the development server:
npm run devBuild for production:
npm run buildPreview a production build locally:
npm run previewreact,react-dom— UI libraryvite— build tool and dev serverleaflet,react-leaflet— map renderingxlsx— Excel parsing
Contributions are welcomed:
- Fork the repo.
- Create a short-lived branch:
git checkout -b feat/your-change. - Make changes and keep them small and focused.
- Run
npm run lintand test locally withnpm run dev. - Open a pull request describing the change and why it helps.
Be polite in PR descriptions. If the change affects user-facing behavior, include brief steps to test it.
- TypeScript is used across the app. Keep types explicit where useful.
- Follow existing folder conventions: UI components in
tools/orcomponents/, logic inhooks/. - Keep components small and testable.
This project is available under the MIT License. See the LICENSE file for details.
- Open issues for bugs or feature requests.
- For questions, leave a clear description and reproduction steps.