Initialize guideCity monorepo scaffolding
Set up git repo with .gitignore and README describing the planned backend (FastAPI + PostGIS) and Android (Kotlin/Compose) architecture. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
2acc5dfa2e
2 changed files with 100 additions and 0 deletions
36
.gitignore
vendored
Normal file
36
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Environment
|
||||
.env
|
||||
*.env
|
||||
!.env.example
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*.egg-info/
|
||||
.venv/
|
||||
venv/
|
||||
.pytest_cache/
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
|
||||
# Docker
|
||||
docker-compose.override.yml
|
||||
|
||||
# Android / Gradle
|
||||
android/local.properties
|
||||
android/.gradle/
|
||||
android/**/build/
|
||||
android/.idea/
|
||||
android/*.iml
|
||||
android/.cxx/
|
||||
android/captures/
|
||||
android/.externalNativeBuild/
|
||||
*.keystore
|
||||
*.jks
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.DS_Store
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
64
README.md
Normal file
64
README.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# guideCity
|
||||
|
||||
Android walking city-guide app. Detects the user's location, finds nearby
|
||||
landmarks, and narrates historical/architectural information about them by
|
||||
voice while showing a swipeable card stack. Starting city: Moscow.
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌────────────────────┐
|
||||
│ Android app │ Kotlin + Jetpack Compose
|
||||
│ (android/) │ 2GIS map, on-device TTS,
|
||||
└─────────┬──────────┘ location, Room favorites
|
||||
│ HTTPS / REST (JSON)
|
||||
┌─────────▼──────────┐
|
||||
│ FastAPI backend │ Python, SQLAlchemy, Alembic
|
||||
│ (backend/) │ Dockerized
|
||||
└─────────┬──────────┘
|
||||
│ SQL
|
||||
┌─────────▼──────────┐
|
||||
│ PostgreSQL+PostGIS │ cities / places / place_content
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
- `backend/` — FastAPI service exposing city/place/nearby-search endpoints,
|
||||
backed by PostgreSQL+PostGIS. See `backend/` for details.
|
||||
- `android/` — Kotlin/Compose app skeleton (MVVM, Hilt, Retrofit, Room,
|
||||
DataStore, 2GIS MapKit, on-device TextToSpeech).
|
||||
|
||||
## Backend quickstart
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
docker compose up -d db
|
||||
docker compose exec api alembic upgrade head # (once api image is built: docker compose up -d --build api adminer first)
|
||||
docker compose exec api python -m seed.seed_loader --file seed/moscow_gorky_park.yaml
|
||||
docker compose exec api python -m seed.seed_loader --file seed/moscow_red_square.yaml
|
||||
docker compose exec api python -m seed.seed_loader --file seed/moscow_city.yaml
|
||||
curl http://localhost:8000/api/v1/health
|
||||
curl "http://localhost:8000/api/v1/nearby?lat=55.7525&lon=37.6231"
|
||||
```
|
||||
|
||||
Swagger UI: http://localhost:8000/docs
|
||||
Adminer (DB inspection): http://localhost:8080
|
||||
|
||||
## Android quickstart
|
||||
|
||||
```bash
|
||||
cp android/local.properties.example android/local.properties
|
||||
# fill in sdk.dir and DGIS_API_KEY (test key: b4df01a8-61db-4cb9-8286-7e069495987d)
|
||||
cd android && ./gradlew :app:assembleDebug
|
||||
```
|
||||
|
||||
Point the app's API base URL at `http://10.0.2.2:8000/` for the emulator, or
|
||||
your machine's LAN IP for a physical device.
|
||||
|
||||
## Notes / current scope
|
||||
|
||||
This is iteration 1: Moscow only (Gorky Park, Red Square area, Moscow-City),
|
||||
no user accounts (favorites are local/Room-only), no speed/heading-aware
|
||||
auto content-length selection yet (reserved API params exist, unused).
|
||||
|
||||
The 2GIS API key above is used directly via `local.properties`/`BuildConfig`
|
||||
for development convenience — don't ship it as-is in a public repo.
|
||||
Loading…
Add table
Add a link
Reference in a new issue