Skip to content

Repository files navigation

pick-a-book

Aide à la sélection de livres à partir d'une photo d'étagère prise au téléphone, pour un usage en ressourcerie : extraction de couples (auteur, titre), réconciliation contre un référentiel bibliographique, enrichissement.

Usage personnel, 20–200 photos par mois. Open source, hébergement simple et peu coûteux.

Démarrer

Node 26.5.1 et Yarn 4.18.0, épinglés dans package.json (champ volta). Avec Volta installé, les deux versions sont posées automatiquement en entrant dans le dossier. Sans Volta, installer Yarn 4 explicitement — Node 26 ne fournit plus Corepack :

npm install -g @yarnpkg/cli-dist@4.18.0

Puis :

yarn install
cp .env.example .env    # les variables requises sont commentées dans le fichier
yarn api                # http://localhost:3000/health
yarn web                # http://localhost:4200

Ou tout en conteneurs, avec un émulateur de bucket :

docker compose up --build

Vérifier

yarn check              # lint + test + build sur tous les projets

Build et tests passent par Vite et Vitest sur tous les projets (ADR 0007).

Organisation

apps/api/                        NestJS — composition root, orchestration inter-contextes
apps/web/                        React — feature-slice
libs/recognition/domain/         entités, value objects, ports — zéro dépendance technique
libs/recognition/application/    use cases, parlent aux ports
libs/recognition/infrastructure/ adapters
libs/shared/result/              contenu partagé, une lib par sujet nommé
docker/                          Dockerfile des deux apps — contexte de build : la racine
docs/adr/                        décisions d'architecture
infra/                           infrastructure GCP en Terraform — voir infra/README.md

Les frontières entre couches et entre contextes ne sont pas qu'une convention : elles sont appliquées par @nx/enforce-module-boundaries et des tags Nx, et un import interdit fait échouer yarn lint. Les règles et le pourquoi sont dans docs/adr/ ; le mode d'emploi au quotidien dans CLAUDE.md.

Licence

MIT — voir LICENSE.

About

Pick a book

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages