Collaborative real-time friend-finding navigation for events
Go to file
Jeff Emmett 908767be15 feat: Show navigation panel when clicking user from list
When clicking a user from the participant list:
1. Map zooms to their location
2. Navigation panel appears with "Navigate here" option
3. Clicking "Navigate here" calculates route to that user

The selectedParticipant state is now lifted to the page level and
passed to DualMapView so both components stay in sync.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:03:16 +01:00
backlog fix: Improve location handling, session persistence, and mobile UI 2025-12-28 23:34:00 +01:00
public feat: Add push notifications for background friend pings 2025-12-29 02:33:08 +01:00
src feat: Show navigation panel when clicking user from list 2025-12-29 03:03:16 +01:00
sync-server feat: Add WebSocket-based location refresh for online friends 2025-12-29 01:51:09 +01:00
.env.example feat: Add PWA push notifications for room events 2025-12-29 01:13:16 +01:00
.gitignore Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
Dockerfile Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
README.md Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
docker-compose.yml Simplify Traefik labels for compatibility 2025-12-15 14:33:28 -05:00
next.config.js Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
package-lock.json Replace Automerge with simple WebSocket sync 2025-12-15 12:59:22 -05:00
package.json Replace Automerge with simple WebSocket sync 2025-12-15 12:59:22 -05:00
postcss.config.js Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
tailwind.config.ts Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
tsconfig.json Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00

README.md

rMaps.online

Collaborative real-time friend-finding navigation for events.

Features

  • Real-time GPS Sharing: See your friends' locations on the map
  • Privacy-First: Control who sees your location and at what precision
  • c3nav Integration: Indoor navigation for CCC events (38C3, Easterhegg, Camp)
  • Ephemeral Rooms: Create a room, share the link, meet up
  • No Account Required: Just enter your name and go

Quick Start

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000

Architecture

┌─────────────────────────────────────────────────┐
│                  rMaps.online                    │
├─────────────────────────────────────────────────┤
│  Frontend: Next.js + React + MapLibre GL        │
│  State: Zustand + Automerge (CRDT)              │
│  Maps: OpenStreetMap (outdoor) + c3nav (indoor) │
│  Sync: WebSocket / Automerge Repo               │
└─────────────────────────────────────────────────┘

Room URLs

  • Path-based: rmaps.online/room/my-crew
  • Subdomain (planned): my-crew.rmaps.online

c3nav Integration

rMaps integrates with c3nav for indoor navigation at CCC events:

  • Automatic detection when entering venue area
  • Indoor positioning via WiFi/BLE
  • Floor-aware navigation
  • Route planning to friends, events, and POIs

Development

# Type checking
npm run type-check

# Linting
npm run lint

# Build for production
npm run build

Deployment

Docker

docker compose up -d --build

Traefik Labels

The docker-compose.yml includes Traefik labels for:

  • Main domain routing (rmaps.online)
  • Wildcard subdomain routing (*.rmaps.online)

Privacy

  • No tracking: We don't store location history
  • Ephemeral rooms: Auto-delete after 7 days of inactivity
  • Precision control: Choose how accurately to share your location
  • Ghost mode: Hide your location while staying in the room

License

MIT