Enterprise · Saint-Gobain SEFPRO · Case study
Action Plan Tracker (APT)
Meeting minutes in, accountable action items out.
A full-stack platform that turns meeting minutes into assigned, deadline-tracked action items. Organizers schedule meetings, a note-taker records the minutes, and every action point gets an owner who acknowledges it, plans it and closes it with evidence. Built and deployed for Saint-Gobain SEFPRO, where it replaced scattered spreadsheets and follow-up emails.
- Role
- Full Stack Developer (design, build, deploy)
- When
- May – Aug 2026
- Stack
- React
- Vite
- Node.js
- Express
- Prisma
- PostgreSQL
- Socket.IO
- Microsoft Graph API
- JWT
- Private repo · walkthrough on request
01 · Context
The problem
Action items agreed in meetings were scattered across spreadsheets and follow-up emails, so it was hard to see who owned what, by when, and what was already overdue.
02 · Solution
The approach
One platform where minutes become owned, dated action items. Microsoft 365 sits behind it, so calendar, Teams and email stay in the tools people already use, while role-based dashboards give each level of the organisation the view it needs.
03 · The product
Screens from the app
Select any screen to view it full size in a new tab.
(opens full size in a new tab)Organisation dashboard: every action by status, meeting and department
(opens full size in a new tab)Action Master: the register of every action point
(opens full size in a new tab)My Actions: acknowledge, start and close your own items
(opens full size in a new tab)My Meetings, grouped by week
(opens full size in a new tab)Administration: users, bulk upload, PDF and Excel export
(opens full size in a new tab)Sign-in
Enterprise project. The screenshots are the real application running on a demo database with made-up people and meetings, and the company logo is hidden. The source code is private.
04 · Architecture
How the pieces fit together
Action Plan Tracker (APT) · architecture
Interface
- React app · browser · PWA · Teams tab
Logic
- Express API · JWT auth · role checks
- Socket.IO · live updates
- Reports · PDF · Excel
Data
- PostgreSQL · via Prisma
Services
- Microsoft Graph · calendar · Teams · mail
Data flow
- React app → Express API (REST)
- Socket.IO → React app (live updates)
- Express API → Socket.IO
- Express API → PostgreSQL (Prisma)
- Express API → Reports (export)
- Express API → Microsoft Graph (sync)
05 · What I built
Key features
01
Meetings and scheduling
Admins and managers schedule one-off or recurring meetings with attendees, a note-taker, a place and a rich-text agenda. A scheduling assistant shows who is free on the chosen day, and a linked Microsoft Teams meeting can be created in the same step.
02
Minutes that become actions
The note-taker records discussion points and action points during the meeting, or imports them in bulk from an Excel template. Submitting the minutes notifies the attendees and creates an action plan for each action point.
03
Action lifecycle
Each owner acknowledges their item, sets a planned start and a target date, starts it, and closes it with remarks and attached files. Every step is its own validated API call, and overdue items are flagged automatically.
04
Action Master
A register of every action across meetings and recurring series, with status counts and filters for meeting, department and date. It is the one list to open when someone asks where a decision stands.
05
Dashboards for each role
A personal dashboard for every user, a department view for managers and an organisation-wide view for admins, each breaking actions down by status, meeting and department.
06
Microsoft 365 via Graph API
Calendar sync, Teams meeting creation, and notification emails that are sent from each organizer's own mailbox rather than a generic address. The app is also packaged as a Microsoft Teams app, so it opens as a tab inside Teams.
07
Live updates
Notifications and data refreshes are pushed over Socket.IO, so a newly assigned action shows up without a page reload.
08
Reports and administration
PDF and Excel exports for users, meetings and actions. Admins manage users one by one or by bulk upload, and maintain the lookup lists the app uses.
09
Security
JWT authentication with bcrypt password hashes, role guards on the API, request validation, Helmet headers and rate limiting.