Skip to content

elzinko/city-guided

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

237 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CityGuided — Monorepo MVP

CI

Fluid, segmented audio guide tailored for taxi passengers (and pedestrians) with mobile-first UX.

Structure minimale : apps/, services/, packages/, infra/

Prérequis

  • pnpm (v7+)
  • Node 18+
  • git
  • Docker Desktop

Quick start

  1. Installer : pnpm install

  2. Développement : pnpm dev

    Démarre automatiquement Docker si nécessaire. Les URLs apparaissent dans les logs.

  3. Tests : pnpm test

  4. Infra Provisioning : pnpm infra:provision:aws staging

  5. Infra status : pnpm infra:status

Configuration

Voir les configurations de déploiement dans config.

Scripts disponibles

Toutes les commandes dans package.json.

Preview d'une PR en local

Boote le head d'une PR dans un git worktree isolé (sans toucher à ton working tree). Deux modes :

Mode Commande Runtime DB
node (défaut) pnpm preview:pr 42 Processus Node (pnpm) — multi-instance DB dédiée cityguided_pr_<n> sur Postgres local (pnpm db:start, host :5433)
docker pnpm preview:pr 42 --mode docker Compose city-guided-preview-<n> (Docker Desktop) Postgres isolé (conteneur + volume)
  • Nom : city-guided-preview-<n> (node : titre terminal / process.title ; docker : COMPOSE_PROJECT_NAME)
  • Worktree : .worktrees/pr-<n>/ — ports persistés dans .preview-ports
  • Ports dynamiques par PR (base 4100 / 3180 / 3181 ; Postgres host docker dès 5434) — plusieurs previews en parallèle OK
  • stop <n> ne tue que cette PR (pas les autres)
pnpm preview:pr 42                         # node (multi-instance)
pnpm preview:pr 43                         # 2e preview → autres ports + autre DB
pnpm preview:pr 42 --mode docker           # stack Compose isolée
pnpm preview:pr:stop 42                    # stop uniquement la #42
pnpm preview:pr:stop 42 --remove           # stop + worktree + drop DB (node)
pnpm preview:pr --help

Lien partageable : skill ezk-preview (tunnel) sur le port web de cette PR (voir le banner au démarrage).

Infrastructure AWS

Déploiement sur AWS ECS Fargate avec scale-to-zero automatique pour optimiser les coûts.

⚠️ L'infra AWS est un projet autonome, hors workspace pnpm (ses ~285 Mo de dépendances CDK faisaient échouer les builds Render en Out of memory). Elle s'installe à la demande :

pnpm infra:aws:install

Ensuite, tous les scripts pnpm infra:* fonctionnent normalement. Détails : infra/provisioning/aws/README.md.

Projets annexes

Packages npm réutilisables

Ce projet contient deux packages npm qui peuvent être installés dans d'autres projets:

📚 Documentation:

🚀 Utilisation rapide:

# Publier sur GitHub Packages
./scripts/publish-package.sh both patch

# Installer dans un autre projet
echo "@bacasable:registry=https://npm.pkg.github.com" > .npmrc
pnpm add @bacasable/lifefindsaway @bacasable/iamthelaw

Releases

Packages

Used by

Contributors

Languages