CompanyPulse - Outil interne de gestion des relations entreprises
fullstack

CompanyPulse - Outil interne de gestion des relations entreprises

Outil interne de gestion des relations entreprises pour Epitech Marseille.

10 février 2026

CompanyPulse — Outil interne de gestion des relations entreprises

Contexte

CompanyPulse est un outil interne conçu pour gérer les relations entre Epitech Marseille et les entreprises partenaires.

Cette application web est née d’un défi lancé par mon directeur de campus : développer une solution fonctionnelle en seulement 2 semaines.

Objectifs

L’objectif principal était de centraliser les informations des entreprises afin de disposer d’une plateforme unique pour suivre et gérer les relations.

Challenges

  • Contrainte de temps (2 semaines)
  • Gestion du frontend et du backend
  • Mise en place rapide du CI/CD

Fonctionnalités

  • Authentification via compte Epitech (Microsoft)
  • Enregistrement des entreprises avec de nombreuses informations (nom, adresse, tĂ©lĂ©phone, email, site web, rĂ©seaux sociaux, etc.)
  • Gestion des contacts liĂ©s aux entreprises
  • CrĂ©ation de tâches (Ă©quipe ou personnelles) avec rappels dans le dashboard
  • Suivi des communications avec les entreprises (rĂ©unions, appels, etc.)
  • Enregistrement des interactions lors d’évĂ©nements (forums, prĂ©sentations, etc.)
  • Gestion des partenariats avec suivi du statut et des dates d’expiration
  • Ajout de tags personnalisĂ©s pour les entreprises et contacts
  • PossibilitĂ© de blacklist une entreprise avec une raison spĂ©cifique
  • Interface admin pour inviter des utilisateurs (système de whitelist pour sĂ©curiser l’accès)

Stack technique

  • Laravel 12 — Framework backend
  • Pest — Framework de tests
  • React 19 — Bibliothèque frontend
  • Tailwind CSS — Framework CSS
  • Shadcn UI — Composants UI
  • MySQL 8.0 — Base de donnĂ©es
  • GitHub — HĂ©bergement du code
  • Docker — Conteneurisation
  • Docker Registry — Stockage des images

Architecture

J’utilise Inertia.js afin d’améliorer l’expérience développeur et éviter la mise en place d’une API REST entre le frontend et le backend.

Le backend suit une architecture hexagonale simple.

Le frontend repose sur une structure React classique.

Déploiement

Le déploiement est géré via GitHub CI/CD :

CI

  • ExĂ©cution des tests avec Pest
  • Build d’une image Docker unique (frontend + backend)
  • Push de l’image vers un registry Docker
  • Utilisation d’artefacts pour optimiser le temps et les ressources

CD

  • RĂ©cupĂ©ration de la nouvelle image sur un VPS
  • RedĂ©marrage des conteneurs

J’ai également développé un script Bash permettant de sauvegarder la base de données en fichier compressé .gz, exécuté automatiquement via un cron job.

Ce que j’ai appris

  • AmĂ©lioration de mes compĂ©tences en Laravel et React
  • Mise en pratique de Docker et GitHub CI/CD sur un cas rĂ©el
  • DĂ©couverte et utilisation de l’architecture hexagonale

Améliorations futures

  • AmĂ©liorer le dashboard avec plus d’indicateurs
  • Ajouter le soft delete pour prĂ©server les donnĂ©es
  • Étendre les fonctionnalitĂ©s admin (gestion des utilisateurs, rĂ´les, permissions)