Intranet VEDEM
Un portail interne pour le quotidien de l’entreprise
Portail interne de l’entreprise : présences et planning, annonces, onglets métier par BU, messagerie en temps réel, pilotage et rapports exportables.
Problème
Le suivi des présences, la communication interne et l’accès aux outils de chaque équipe doivent passer par un point d’entrée unique, avec une vision consolidée pour la direction.
Contexte
Portail interne destiné aux collaborateurs, aux responsables de BU et à la direction.
Objectifs
- Suivre les présences, les horaires et les plannings
- Centraliser la communication interne et les outils de chaque BU
- Produire des rapports exploitables par les responsables
Contraintes
- Droits d’accès différents selon le rôle et la BU
- Géolocalisation à utiliser de façon fiable et respectueuse des données personnelles
- Postes partagés utilisés en mode kiosque
Solution
Un portail web unique, organisé par rôle et par BU, qui rassemble les outils du quotidien, la communication et le pilotage.
Fonctionnalités principales
- Présences, planning, congés et jours fériés
- Annonces et notifications
- Onglets métier configurés par BU
- Messagerie interne en temps réel
- Pilotage et rapports exportables en Excel et PDF
- Historique et journal d’activité
- Déploiement en mode kiosque sur Linux, macOS et Windows
Utilisateurs
- Collaborateurs
- Responsables de BU
- Direction
Mon rôle
- Conception de l’architecture et du modèle de données
- Développement full-stack : interface Next.js et API NestJS
- Messagerie et notifications en temps réel
- Génération des rapports (Excel, PDF)
- Déploiement et maintenance sur VPS (Nginx, PM2)
Architecture
Monorepo avec une interface Next.js et une API REST NestJS qui partagent un paquet de données Prisma sur PostgreSQL. Socket.IO assure la messagerie et les notifications en temps réel.
Collaborateurs
navigateur ou kiosque
Nginx
reverse proxy
Next.js
portail
API NestJS
règles métier · PM2
PostgreSQL
via Prisma
Socket.IO
messagerie et notifications
Décisions techniques
- Un paquet de données partagé pour garder un seul schéma entre l’interface et l’API
- Socket.IO pour la messagerie plutôt qu’un rafraîchissement périodique
- Exports générés côté serveur pour des rapports fidèles
Difficultés rencontrées
- Gérer des droits d’accès croisés entre rôles et BU
- Verrouiller les postes partagés quel que soit le système d’exploitation
Résultat
- Un point d’entrée unique pour les usages internes du quotidien