Meeting Room Booking System
A standalone booking system for Luxera GYO that prevents double bookings, routes reservations through manager approval and sends calendar invitations automatically.
- Organization
- Luxera GYO
- Status
- In production
- Role
- Requirements, architecture, review, testing and deployment, with AI-assisted coding
- Stack
- Next.js
- FastAPI
- PostgreSQL
- Odoo 17
- Microsoft Entra / Outlook
- Docker
- Caddy / nginx
- GitHub Actions
Overview
A standalone meeting room booking and management system built for Luxera GYO. Employees book rooms in one place; bookings go through manager approval, conflicts are blocked, and calendar invitations are sent automatically through Odoo and Outlook.
Screenshots
Business problem
Luxera GYO needed one reliable place to book meeting rooms: a way to prevent double bookings, make every booking go through manager approval, and send calendar invitations without manual work.
Solution and main features
- Room reservations
- Manager approval workflow
- Conflict detection to prevent double bookings
- Odoo 17 as the employee identity source
- Odoo Calendar invitations, including external attendees
- Outlook synchronization through Microsoft Entra
- Recurring meetings (weekly or every N weeks)
My role and contributions
- Gathered the requirements and defined the scope
- Designed the architecture and the Odoo and Microsoft 365 integrations
- Reviewed and tested the code and set up CI/CD
- Set up the servers, backups and deployment
AI tools and how they were used
I used Claude to accelerate code writing. Requirements, architecture decisions, review, testing and deployment remained my responsibility, and AI-generated code was reviewed and tested before it shipped.
Read the AI disclosureArchitecture and technology stack
- Frontend
- Next.js
- Backend API
- FastAPI
- Database
- PostgreSQL
- Identity and calendar
- Odoo 17: employee directory and calendar invitations
- Calendar sync
- Microsoft Entra / Outlook
- Delivery
- Docker, Caddy / nginx, GitHub Actions CI/CD
Simplified view. Hostnames, internal addresses and configuration are intentionally left out.
Security, testing and validation
- Bookings require manager approval before they are confirmed
- Conflict detection blocks overlapping reservations
- Automated tests run in CI on GitHub Actions
- Backups configured as part of the server setup
Current status
In production at Luxera GYO and used by employees.


