// Accueil // Blog // Projets Web // Qui suis-je ? // Contact
Accueil / Projets Web / Luxury Housekeeping Assistant
pilou2506.vercel.app
Luxury Housekeeping Assistant — capture d'écran sur ordinateur

Luxury Housekeeping Assistant

Next.jsReactTypeScriptTailwind CSSPWAMagic UI

Le problème

Un client demande un humidificateur, un pyjama enfant ou un lit d'appoint : encore faut-il savoir où il est rangé. L'information existait dans un tableur Excel et une liste de prêt sous Word, peu pratiques sur un téléphone, au milieu d'un couloir.

Ce que fait l'appli

  • Recherche tolérante (fautes de frappe, pleine / demi-chasse, mots-clés cachés en japonais) sur les 91 objets de l'inventaire, avec les demandes les plus fréquentes en raccourcis.
  • Chemin en trois temps : étage → zone → emplacement exact, avec photo de l'objet quand elle existe et état du stock (en stock, bas, épuisé, en déplacement).
  • Annuaire des étages façon colonne d'ascenseur et « Vous êtes au… » : l'appli calcule le trajet depuis votre étage, avec la montée de l'ascenseur en animation signature.
  • Interface anglais / japonais, thème clair / sombre, liens directs vers un objet (#hair-dryer), objets consultés récemment, copie de l'emplacement, appli installable et utilisable hors ligne.

Sous le capot

Next.js 16 (App Router, page pré-rendue en statique), TypeScript strict, Tailwind CSS 4, Motion et des composants Magic UI. Toute la logique (recherche, filtres, étages) est dans des fonctions pures testées avec Vitest, et TypeScript refuse un objet incomplet ou une catégorie sans pictogramme. L'inventaire fusionne la feuille de passation et le tableur de l'équipe.

La démo

Pas de base de données ici : l'inventaire est compilé dans l'appli. La démo est un export statique complet, fidèle à la version utilisée sur le terrain.

🎯 Le but du projet

Qu'un nouveau membre de l'équipe trouve un lit bébé, un oreiller sans plumes ou un fer à friser aussi vite qu'un ancien, sans faire le tour des étages ni appeler le bureau.

📁 Structure du projet · 214 fichiers

  • luxuryhousekeepingassistant/
    • design/
      • icons/
        • lift-button.svg
        • monogram.html
    • dist/
      • _next/
        • static/
          • chunks/
            • 0cz1d0mv5g_q7.js
            • 0h2qsuyze9ds1.js
            • 0ix-jlycjdd0r.js
            • 0nfs-ouccha1o.js
            • 0y-dctk-kmqss.js
            • 196x_tfexoucg.js
            • 1fwuurrz1m80u.js
            • 2f257cg9fkgz6.css
            • 2v7wahkume8rs.js
            • 3s6nzrbk-8mnv.js
            • turbopack-2dbn25qzydd34.js
          • Jwychs0MH_zMJBQ5gpnQV/
            • _buildManifest.js
            • _clientMiddlewareManifest.js
            • _ssgManifest.js
          • media/
            • apple-icon.1m5ginquxtffq.png
            • bodoni-moda-latin-ext-opsz-italic.414axhz646658.woff2
            • bodoni-moda-latin-ext-opsz-normal.2voyzjh_7c4mo.woff2
            • bodoni-moda-latin-opsz-italic.2knu9oo8uyx5c.woff2
            • bodoni-moda-latin-opsz-normal.0upi7cxdvpner.woff2
            • bodoni-moda-math-opsz-italic.1tyjrw473gwqm.woff2
            • bodoni-moda-math-opsz-normal.3mii13dhfk-g0.woff2
            • bodoni-moda-symbols-opsz-italic.3nvrcpvdz84pq.woff2
            • bodoni-moda-symbols-opsz-normal.0nmhsett4r-vy.woff2
            • favicon.1_4lofb08sjru.ico
            • icon.3o5unaq4hv35m.svg
            • jost-cyrillic-wght-normal.0q-st8qq75k6v.woff2
            • jost-latin-ext-wght-normal.3hwlhy-7zi3w2.woff2
            • jost-latin-wght-normal.2_4ymh7gr-8lu.woff2
      • _not-found/
        • __next._full.txt
        • __next._not-found.__PAGE__.txt
        • __next._tree.txt
        • index.html
        • index.txt
      • 404/
        • index.html
      • icons/
        • icon-192.png
        • icon-512.png
        • maskable-512.png
      • photos/
        • baby-bath-chair.png
        • baby-bathtub.png
        • bath-pillow.png
        • bed-guard.png
        • blanket.png
        • bottle-warmer.png
        • bottle-washer.png
        • buckwheat.png
        • contact-lens-remover.png
        • crib.png
        • deodorant.png
        • diaper-pail.png
        • dvd-player.png
        • extension-cord.png
        • feather-pipe.png
        • hair-tie.png
        • hdmi-cable.png
        • humidifier.png
        • iron-board.png
        • kids-step.png
        • memory.png
        • nail-clipper.png
        • night-safari.png
        • phone-charger.png
        • prayer-set.png
        • scissors.png
        • shoe-dryer.png
        • shower-chair.png
        • skin-care-set.png
        • straight-iron.png
        • thermometer.png
        • trouser-press.png
        • vase.png
        • voltage-converter.png
      • __next.__PAGE__.txt
      • __next._full.txt
      • __next._tree.txt
      • 404.html
      • apple-icon.png
      • favicon.ico
      • icon.svg
      • index.html
      • index.txt
      • manifest.webmanifest
      • sw.js
    • docs/
      • PROMPT_CLAUDE_CODE.md
    • public/
      • icons/
        • icon-192.png
        • icon-512.png
        • maskable-512.png
      • photos/
        • baby-bath-chair.png
        • baby-bathtub.png
        • bath-pillow.png
        • bed-guard.png
        • blanket.png
        • bottle-warmer.png
        • bottle-washer.png
        • buckwheat.png
        • contact-lens-remover.png
        • crib.png
        • deodorant.png
        • diaper-pail.png
        • dvd-player.png
        • extension-cord.png
        • feather-pipe.png
        • hair-tie.png
        • hdmi-cable.png
        • humidifier.png
        • iron-board.png
        • kids-step.png
        • memory.png
        • nail-clipper.png
        • night-safari.png
        • phone-charger.png
        • prayer-set.png
        • scissors.png
        • shoe-dryer.png
        • shower-chair.png
        • skin-care-set.png
        • straight-iron.png
        • thermometer.png
        • trouser-press.png
        • vase.png
        • voltage-converter.png
      • sw.js
    • src/
      • app/
        • apple-icon.png
        • favicon.ico
        • globals.css
        • icon.svg
        • layout.tsx
        • manifest.ts
        • page.tsx
      • components/
        • lhs/
          • building-section.tsx
          • category-tabs.tsx
          • directory-view.tsx
          • finder.tsx
          • floor-strip.tsx
          • header.tsx
          • highlight.tsx
          • ios-install-sheet.tsx
          • item-card.tsx
          • item-sheet.tsx
          • lang-toggle.tsx
          • lift-indicator.tsx
          • logo.tsx
          • my-floor-select.tsx
          • page-blur.tsx
          • pictograms.tsx
          • pill.tsx
          • pwa-register.tsx
          • recent-list.tsx
          • results.tsx
          • route-beam.tsx
          • search-bar.tsx
          • site-dock.tsx
          • site-footer.tsx
          • splash.tsx
          • theme-provider.tsx
          • toast.tsx
          • view-toggle.tsx
        • ui/
          • animated-beam.tsx
          • animated-list.tsx
          • animated-shiny-text.tsx
          • animated-subscribe-button.tsx
          • animated-theme-toggler.tsx
          • backlight.tsx
          • blur-fade.tsx
          • border-beam.tsx
          • button.tsx
          • dock.tsx
          • file-tree.tsx
          • highlighter.tsx
          • lens.tsx
          • magic-card.tsx
          • noise-texture.tsx
          • number-ticker.tsx
          • progressive-blur.tsx
          • pulsating-button.tsx
          • ripple-button.tsx
          • ripple.tsx
          • scroll-area.tsx
          • scroll-progress.tsx
          • shine-border.tsx
          • sparkles-text.tsx
          • text-animate.tsx
          • word-rotate.tsx
      • data/
        • inventory.ts
      • hooks/
        • use-finder.ts
        • use-install.ts
        • use-lang.tsx
        • use-token-colors.ts
      • lib/
        • copyright.test.ts
        • copyright.ts
        • filters.ts
        • floors.ts
        • i18n.test.ts
        • i18n.ts
        • pwa.test.ts
        • pwa.ts
        • recent.test.ts
        • recent.ts
        • search.test.ts
        • search.ts
        • types.ts
        • utils.ts
    • AGENTS.md
    • CLAUDE.md
    • components.json
    • eslint.config.mjs
    • next.config.ts
    • package-lock.json
    • package.json
    • postcss.config.mjs
    • README.md
    • tsconfig.json
    • vitest.config.ts

Autres projets