e32f2d89260fa86fec0c0c4bb12b0a1867feaf9c
mapix
A browser-based photo mapping prototype that reads EXIF/GPS data and shows images on OpenStreetMap.
Features
- Nextcloud public share import through a local proxy
- Client-side EXIF and GPS extraction where possible
- Map markers with thumbnail previews
- Thumbnail-backed photo list with lazy full-size image loading
- Fullscreen photo viewer with loading state
- Zoomable timeline with selectable ranges
- Route line toggle on the map
- Dark and light mode that follows the client OS preference and can be toggled manually
- Local browser dependency bundle for Leaflet and EXIF parsing
- Local brand assets and favicon
Recent Changes
- Image handling now keeps thumbnails in the browser for markers and the photo list, while full-size images are loaded only on demand.
- The photo viewer now shows a loading indicator before the full image is ready.
- The sidebar header now includes the brand logo, and the logo switches with the active theme.
- The top-right controls include a route visibility toggle and a theme toggle with compact icon-only buttons.
- Browser dependencies and static assets are served locally to avoid CDN-related failures.
- The timeline keeps its selected range visible again during drag selection.
- The photo list now uses compact thumbnail tiles and stable wrapping for large result sets.
Start
npm install
npm run build
npm start
Notes
- Photos are not stored on the server.
- The UI and processing run in the browser where possible.
- Browser dependencies are installed through npm and copied into
dist/vendorduringnpm run build; the runtime serves them locally instead of loading third-party CDNs. - Static brand assets are copied from
src/assetsintodist/assetsduring the build. - Future auth can be forwarded by a reverse proxy via HTTP headers.
Description
Languages
TypeScript
99.6%
Dockerfile
0.4%
