Aller au contenu principal

Modules

37 modules dashboard organisés en 8 sections de navigation.

Vue d'ensemble

HeartCo est organisé en modules indépendants. Chaque module correspond à une page dashboard, un router tRPC, et une entrée dans la navigation.

Sections et modules

Dashboard

ModuleCheminRouter tRPCDescription
Tableau de bord/dashboarddashboardVue d'ensemble, KPIs, activité récente

Copilote IA

ModuleCheminRouter tRPCDescription
Copilote/dashboard/copilotecopiloteAssistant IA conversationnel (Mistral)

Commercial (7 modules)

ModuleCheminRouter tRPCDescription
Pipeline CRM/dashboard/crmcrmGestion des opportunités (kanban)
Clients/dashboard/clientsclientsFiches clients, historique, contacts
Fournisseurs/dashboard/fournisseurssuppliersGestion des fournisseurs
Rendez-vous/dashboard/rendez-vousappointmentsPrise de RDV, calendrier
Marketing/dashboard/marketingmarketingCampagnes email, newsletters
Social Content/dashboard/social-contentsocialContentGénération contenu réseaux sociaux
Assistant réglementaire/dashboard/assistant-reglementaireregulatoryAssistantVeille réglementaire IA

Facturation (11 modules)

ModuleCheminRouter tRPCDescription
Factures/dashboard/facturationfacturationCréation, envoi, suivi des factures
Devis/dashboard/devisdevisDevis, conversion en facture
Relances/dashboard/relancesrelancesRelances automatiques impayés
E-Facturation/dashboard/e-invoicingiopoleFactur-X, Chorus Pro (B2B/B2G)
Bons de livraison/dashboard/bons-de-livraisondeliveryNotesBons de livraison
Factures reçues/dashboard/factures-recuesreceivedInvoicesFactures fournisseurs
Notes de frais/dashboard/notes-de-fraisnotesDefraisDéclaration et approbation
Factures récurrentes/dashboard/factures-recurrentesrecurringInvoicesAbonnements et récurrence
Catalogue produits/dashboard/produitsproductsProduits et services
Import CSV/dashboard/importImport de données
ISO 20022/dashboard/iso20022iso20022Virements SEPA

Finance (3 modules)

ModuleCheminRouter tRPCDescription
Comptabilité/dashboard/comptabilitecomptabiliteGrand livre, export FEC
Analytics/dashboard/analyticsanalyticsTableaux de bord, rapports
Stock/dashboard/stockstockGestion des stocks et inventaire

Opérations (4 modules)

ModuleCheminRouter tRPCDescription
Bons de travail/dashboard/bons-de-travailworkOrdersInterventions terrain
Rapports/dashboard/rapportsreportsRapports d'intervention
Feuilles de temps/dashboard/feuilles-de-tempstimesheetsSuivi du temps
SAV/dashboard/savticketsTickets support client

Équipe (4 modules)

ModuleCheminRouter tRPCDescription
Membres/dashboard/equipemembersGestion de l'équipe
RH/dashboard/rhrhCongés, absences, profils employés
Validation temps/dashboard/feuilles-de-tempstimesheetsApprobation feuilles de temps
Automatisations/dashboard/automatisationsautomationWorkflows automatiques

Autres modules

ModuleCheminRouter tRPCDescription
Paramètres/dashboard/parametressettingsConfiguration organisation
Marketplace/dashboard/marketplacemarketplaceModules complémentaires
Projets/dashboard/projetsprojetsGestion de projets
Agenda/dashboard/agendacalendarEventsCalendrier partagé
Chat/dashboard/chatconversationsMessagerie interne
Idées/dashboard/ideasideasBoîte à idées
Itinéraires/dashboard/itinerairesitinerairesOptimisation de tournées
Billing/dashboard/billingtrial, freemiumAbonnement et facturation

Configuration de la navigation

Fichier : src/lib/navigation/nav-config.ts

La sidebar est configurée via l'objet NAV_SECTIONS qui définit les sections, icônes, couleurs et items :

const NAV_SECTIONS: NavSection[] = [
  {
    id: "commercial",
    label: "Commercial",
    icon: Users,
    color: "emerald",
    description: "Gestion commerciale et CRM",
    defaultOrder: 3,
    children: [
      {
        id: "crm",
        label: "Pipeline",
        path: "/dashboard/crm",
        icon: Target,
        badge: "core",
        moduleId: "MODULE_CRM",
      },
      // ...
    ],
  },
  // ...
];

Couleurs des sections

Chaque section a une couleur sémantique (Tailwind) :

SectionCouleurUsage
DashboardindigoNavigation principale
Copilote IAvioletIntelligence artificielle
CommercialemeraldVentes et CRM
FacturationamberFinance et factures
FinanceskyComptabilité
OpérationsorangeTerrain et interventions
ÉquipetealRH et gestion d'équipe

Badges

Les modules affichent des badges pour indiquer leur type :

  • core — Inclus dans le plan
  • addon — Module à la carte (payant)
  • vertical — Module vertical (BTP, etc.)
  • Tags : NEW, BETA, PRO

Activer / désactiver un module

Pour retirer un module de la navigation :

  1. Ouvrir src/lib/navigation/nav-config.ts
  2. Commenter ou supprimer l'item dans le tableau children de la section concernée
  3. (Optionnel) Supprimer le router tRPC et la page dashboard

Le router tRPC peut rester en place même si le module est masqué dans la navigation — il ne sera simplement plus accessible via la sidebar.

Ajouter un nouveau module

1. Créer le router tRPC

// src/server/api/routers/mon-module.ts
import { createTRPCRouter, requirePermission } from "~/server/api/trpc";
import { z } from "zod";
 
export const monModuleRouter = createTRPCRouter({
  list: requirePermission("mon_module:read")
    .input(z.object({ page: z.number().default(1) }))
    .query(async ({ ctx, input }) => {
      return ctx.orgDb.monModel.findMany({
        take: 20,
        skip: (input.page - 1) * 20,
        orderBy: { createdAt: "desc" },
      });
    }),
});

2. Enregistrer le router

// src/server/api/root.ts
import { monModuleRouter } from "./routers/mon-module";
 
export const appRouter = createTRPCRouter({
  // ... routers existants
  monModule: monModuleRouter,
});

3. Créer la page dashboard

src/app/dashboard/mon-module/
├── page.tsx        # Page principale
└── layout.tsx      # Layout (optionnel)

4. Ajouter à la navigation

// src/lib/navigation/nav-config.ts
// Dans la section appropriée, ajouter :
{
  id: "mon-module",
  label: "Mon Module",
  path: "/dashboard/mon-module",
  icon: Box,
  badge: "core",
  moduleId: "MODULE_MON_MODULE",
}

5. (Optionnel) Ajouter la permission

Voir Permissions pour ajouter mon_module:read, mon_module:create, etc.