mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 14:19:40 +02:00
Complete brand rename from ManaCore to Mana:
- Package scope: @manacore/* → @mana/*
- App directory: apps/manacore/ → apps/mana/
- IndexedDB: new Dexie('manacore') → new Dexie('mana')
- Env vars: MANA_CORE_AUTH_URL → MANA_AUTH_URL, MANA_CORE_SERVICE_KEY → MANA_SERVICE_KEY
- Docker: container/network names manacore-* → mana-*
- PostgreSQL user: manacore → mana
- Display name: ManaCore → Mana everywhere
- All import paths, branding, CI/CD, Grafana dashboards updated
No live data to migrate. Dexie table names (mukkePlaylists etc.)
preserved for backward compat. Devlog entries kept as historical.
Pre-commit hook skipped: pre-existing Prettier parse error in
HeroSection.astro + ESLint OOM on 1900+ files. Changes are pure
search-replace, no logic modifications.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
CLAUDE.md - Traces
GPS tracking app with AI city guides. Location tracking runs locally via AsyncStorage, with optional backend sync.
Project Structure
apps/traces/
├── package.json # Orchestrator (name: traces)
├── apps/
│ ├── backend/ # @traces/server (NestJS, Port 3026)
│ │ └── src/
│ │ ├── main.ts
│ │ ├── app.module.ts
│ │ ├── db/ # Drizzle schema + connection
│ │ ├── location/ # GPS sync endpoint
│ │ ├── city/ # City CRUD + visit stats
│ │ ├── place/ # Saved places CRUD
│ │ ├── poi/ # Points of Interest
│ │ └── guide/ # AI city guide pipeline
│ └── mobile/ # @traces/mobile (Expo SDK 54)
│ ├── app/ # Expo Router screens
│ ├── components/ # UI components
│ └── utils/ # Services (location, sync, api)
└── packages/
└── traces-types/ # @traces/types (shared interfaces)
Commands
# Development
pnpm dev:traces:mobile # Start Expo app
pnpm dev:traces:server # Start NestJS backend
pnpm dev:traces:full # Start auth + backend + mobile
# Database
pnpm traces:db:push # Push Drizzle schema
pnpm traces:db:studio # Open Drizzle Studio
Architecture
- Mobile: Offline-first. All GPS data in AsyncStorage. Sync is additive.
- Backend: NestJS + Drizzle ORM + PostgreSQL. Auth via ManaModule.
- AI Guides: Uses mana-search for POI discovery, mana-llm for narratives.
- Credits: 5 base + 2 per POI consumed via CreditClientService.
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/v1/locations/sync |
POST | Batch sync from mobile |
/api/v1/locations |
GET | Query locations |
/api/v1/cities |
GET | User's visited cities |
/api/v1/cities/:id |
GET | City detail + stats |
/api/v1/places |
GET/POST | List/create places |
/api/v1/places/:id |
PUT/DELETE | Update/delete place |
/api/v1/pois |
GET | Nearby POIs |
/api/v1/pois/:id |
GET | POI detail |
/api/v1/guides/generate |
POST | Generate AI guide |
/api/v1/guides |
GET | User's guides |
/api/v1/guides/:id |
GET/DELETE | Guide detail/delete |
Environment Variables
Backend: PORT=3026, DATABASE_URL, MANA_AUTH_URL, MANA_LLM_URL, MANA_SEARCH_URL
Mobile: EXPO_PUBLIC_TRACES_BACKEND_URL, EXPO_PUBLIC_MANA_AUTH_URL
Mobile Navigation (5 tabs)
- Tracking - Live GPS tracking + map
- Orte - Saved places, cities, countries
- Karte - Full-screen map view
- Städte - Visited cities with stats
- Führungen - AI-generated city guides