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

Luxury Guest Assistant

ReactTypeScriptViteTailwind CSSMagic UI

Le problème

Dans le luxe, se souvenir qu'un client préfère un oreiller ferme ou une chambre loin de l'ascenseur fait toute la différence. Mais ces détails se perdent entre deux séjours, deux équipes, deux carnets.

Ce que fait l'appli

  • Enregistrer une préférence en quelques secondes : client, chambre, dates de séjour, lieu, service concerné, membre de l'équipe, statut (à faire, en cours, fait).
  • Journal archivé filtrable et profil par client regroupant toutes ses préférences et son historique.
  • Calendrier des séjours, widget des départs du jour et graphiques de tendances (Recharts) pour voir quelles demandes reviennent.
  • Interface anglais / japonais, annulation des suppressions, écran d'accueil animé une fois par session.

Sous le capot

React, TypeScript, Vite et Tailwind CSS v4, animations Motion dans l'esprit Magic UI, tests unitaires avec Vitest. Choix assumé : aucun serveur, aucun service externe, toutes les données restent dans le navigateur de l'appareil.

La démo

Comme l'appli d'origine, la démo stocke tout dans votre navigateur : vous pouvez créer des clients fictifs sans rien envoyer nulle part.

🎯 Le but du projet

Offrir un service personnalisé dès l'arrivée d'un client fidèle, en gardant une trace claire de ses préférences et de ses demandes passées, quel que soit le membre de l'équipe qui l'accueille.

📁 Structure du projet · 72 fichiers

  • luxuryguestassistant/
    • dist/
      • assets/
        • BarChart-C-xSKJqp.js
        • GuestProfile-Du02Rlqa.js
        • index-DD7KPaUN.css
        • index-szujsLwq.js
        • StayCalendarView-CE31ozM4.js
        • TrendsChart-rVsoK0KR.js
      • favicon.svg
      • index.html
    • public/
      • favicon.svg
    • src/
      • components/
        • magic/
          • blurFade.ts
          • BorderBeam.tsx
          • NumberTicker.tsx
          • Ripple.tsx
          • TextAnimate.tsx
        • ConfirmModal.tsx
        • DepartmentBadge.tsx
        • DeparturesWidget.tsx
        • ErrorBanner.tsx
        • Footer.tsx
        • GuestProfile.tsx
        • Header.tsx
        • HistoryView.tsx
        • LoadingFallback.tsx
        • OverviewStrip.tsx
        • PreferenceForm.tsx
        • SplashScreen.test.tsx
        • SplashScreen.tsx
        • StatusBadge.tsx
        • StayCalendarView.tsx
        • SuccessModal.tsx
        • TrendsChart.tsx
        • UndoToast.tsx
      • context/
        • LanguageContext.tsx
        • ThemeContext.tsx
      • hooks/
        • useModalA11y.ts
        • usePreferenceHistory.test.tsx
        • usePreferenceHistory.ts
        • usePrefersReducedMotion.ts
        • useSplashScreen.ts
      • i18n/
        • departments.ts
        • translations.ts
      • test/
        • setup.ts
      • utils/
        • calendarGrid.test.ts
        • calendarGrid.ts
        • csv.test.ts
        • csv.ts
        • formatDate.test.ts
        • formatDate.ts
        • guestStay.test.ts
        • guestStay.ts
        • keywords.test.ts
        • keywords.ts
        • ordinal.test.ts
        • ordinal.ts
        • requestStatus.test.ts
        • requestStatus.ts
        • storage.test.ts
        • storage.ts
        • validation.test.ts
        • validation.ts
      • App.tsx
      • index.css
      • main.tsx
      • types.ts
    • eslint.config.js
    • index.html
    • metadata.json
    • package-lock.json
    • package.json
    • README.md
    • tsconfig.json
    • vite.config.ts

Autres projets