Intranet VEDEM
An internal portal for everyday work
The company's internal portal: attendance and scheduling, announcements, business tabs by unit, real-time messaging, management dashboards and exportable reports.
Problem
Attendance tracking, internal communication and each team's tools need a single entry point, with a consolidated view for management.
Context
Internal portal for employees, business unit managers and senior management.
Goals
- Track attendance, working hours and schedules
- Centralise internal communication and each unit's tools
- Produce reports managers can act on
Constraints
- Access rights that depend on role and business unit
- Geolocation used reliably and with respect for personal data
- Shared workstations used in kiosk mode
Solution
A single web portal, organised by role and business unit, bringing together everyday tools, communication and management.
Key features
- Attendance, scheduling, leave and public holidays
- Announcements and notifications
- Business tabs configured per unit
- Real-time internal messaging
- Dashboards and reports exportable to Excel and PDF
- History and activity log
- Kiosk-mode deployment on Linux, macOS and Windows
Users
- Employees
- Business unit managers
- Senior management
My role
- Architecture and data model design
- Full-stack development: Next.js interface and NestJS API
- Real-time messaging and notifications
- Report generation (Excel, PDF)
- VPS deployment and maintenance (Nginx, PM2)
Architecture
Monorepo with a Next.js interface and a NestJS REST API sharing a Prisma data package on PostgreSQL. Socket.IO powers real-time messaging and notifications.
Employees
browser or kiosk
Nginx
reverse proxy
Next.js
portal
NestJS API
business rules · PM2
PostgreSQL
through Prisma
Socket.IO
messaging and notifications
Technical decisions
- A shared data package to keep a single schema between the interface and the API
- Socket.IO for messaging rather than periodic refreshes
- Server-side exports for accurate reports
Challenges
- Handling access rights that combine roles and business units
- Locking down shared workstations whatever the operating system
Outcome
- A single entry point for everyday internal use