# Hiki : Plateforme de découverte de mangas et de suivi des prix

> Une plateforme de découverte de mangas et de comparaison de prix, sur le web et sur Android, qui regroupe les produits de plusieurs librairies, avec un enrichissement des métadonnées à partir de quatre bases de données d’anime, un suivi quotidien des prix et des stocks, une marketplace d’occasion, une carte des magasins et une interface multilingue.

URL: https://larch.ee/fr/work/hiki/
Publication: 2025-04-01
Produit en ligne: https://hiki.world
Studio: larch (https://larch.ee/fr/) · hello@larch.ee

## Le problème

Les fans de manga n’ont aucun moyen simple de découvrir ce qui est disponible dans les librairies près de chez eux. Les produits sont éparpillés entre plusieurs enseignes, avec des noms incohérents, sans filtre par genre et sans moyen de comparer les prix ou de suivre l’évolution des stocks.

## Notre solution

Nous avons construit Hiki : un catalogue de mangas full-stack et un outil de suivi des prix qui regroupe les produits de plusieurs librairies, les enrichit avec les métadonnées de bases de données d’anime et présente le tout dans une interface rapide, filtrable et multilingue, sur le web et dans une application Android native.

## Fonctionnalités clés

### Agrégation intelligente des produits

Des scrapers automatisés tournent chaque jour et collectent les données produit de plusieurs librairies : noms, prix, remises, état du stock et images. La détection des changements signale les nouveautés, les baisses de prix et les variations de stock, pour que les utilisateurs ne ratent aucune mise à jour.

### Enrichissement des métadonnées

Les noms de produits bruts des librairies sont souvent confus et incohérents. Notre pipeline d’enrichissement orchestre plusieurs API pour les résoudre :

- **AniList** : source principale pour les notes, genres, tags, synopsis et couvertures
- **Shikimori** : traduction des titres pour les noms de produits en cyrillique
- **Jikan & Kitsu** : sources de métadonnées de secours pour les cas particuliers

Le système génère des variantes de titres intelligentes, gère les caractères cyrilliques comme latins et rattache même les noms de produits les plus déformés à leur fiche manga de référence.

### Filtres avancés

Les utilisateurs peuvent filtrer par 21 genres de manga, plus de 100 tags, fourchette de prix, remise, disponibilité en stock et magasin d’origine. La recherche plein texte porte sur les noms de produits dans toutes les langues prises en charge.

### Interface multilingue

Toute la plateforme fonctionne en plusieurs langues, y compris les noms de genres, les traductions des tags et les éléments d’interface, grâce à next-intl et à un routage selon la langue.

### Marketplace

Les utilisateurs mettent en vente des mangas, des figurines d’anime, des vêtements et des vinyles d’occasion, sur le web et dans l’application Android. Une annonce comporte un prix en lei (MDL), l’état, la langue de l’édition, la ville du vendeur en Moldavie et une à cinq photos.

Un administrateur vérifie chaque annonce avant sa mise en ligne, et toute modification la renvoie en vérification. Une annonce approuvée reste en ligne 30 jours, puis expire et peut être renouvelée. Les acheteurs contactent les vendeurs sur Telegram et peuvent signaler une annonce ; Hiki ne gère aucun paiement.

### Carte des magasins

Les lecteurs cherchent une édition précise (par titre, volume ou ISBN) et choisissent une ville. La carte montre les magasins Librarius et Cărturești en Moldavie qui l’ont en stock, avec le prix et le stock, l’adresse et le téléphone, et les horaires d’ouverture. Un filtre « ouvert maintenant », le tri par distance et l’itinéraire les aident à choisir un magasin.

Les données des magasins proviennent des pages des enseignes elles-mêmes, une par magasin, et sont synchronisées chaque nuit. La carte fonctionne avec Google Maps, sur le web comme sur Android.

## Points forts techniques

### Front-end
- **Next.js 15** avec React 19 et l’App Router
- **Design system néo-brutaliste** : bordures épaisses de 2 px, ombres décalées, esthétique inspirée du manga avec les polices Lacquer et Pangolin
- **next-intl** pour une i18n complète avec routage selon la langue
- Composants **shadcn/ui** personnalisés avec le thème néo-brutaliste

### Application Android
- Application native en **Kotlin**, construite avec **Jetpack Compose** et Material 3, disponible sur [Google Play](https://play.google.com/store/apps/details?id=world.hiki)
- Le même back-end **FastAPI** et le même projet **Firebase** que l’application web : Google Sign-In avec Firebase Auth, notifications push avec Firebase Cloud Messaging
- **Hilt**, **Retrofit**, **Room** et **Coil**, avec **Maps Compose** pour la carte des magasins
- Le catalogue avec recherche, filtres et tri, les pages produit et auteur, Shuffle, les listes avec réactions, la marketplace, la carte des magasins, les concours et un profil
- Une application iOS en **SwiftUI** est en préparation

### Back-end
- **FastAPI** (Python) avec MongoDB en asynchrone via Motor
- Scrapers **aiohttp** avec limitation de débit et backoff exponentiel
- **Orchestrateur d’enrichissement multi-API** qui résout les titres dans 4 bases de données d’anime
- **Google Cloud Scheduler** pour les collectes quotidiennes automatisées
- **Cloud Armor** avec restrictions géographiques et liste blanche de robots d’indexation

### Infrastructure
- Front-end et back-end déployés tous deux sur **Google Cloud Run**
- **MongoDB** pour un stockage de documents flexible avec index composés
- **Cloud Build** pour le déploiement continu à chaque push sur main

## Résultats

Hiki offre aux fans de manga un seul endroit pour découvrir, comparer et suivre chaque titre de manga disponible près de chez eux. La plateforme gère des centaines de produits et suit leurs prix et leurs stocks chaque jour.
