Visitor Booking System
A full-stack visitor management app that streamlines office reception workflows with enterprise integrations for Azure AD authentication, Teams notifications, and Outlook calendar sync.
Overview
The Visitor Booking System modernizes office reception and visitor management for organizations looking to replace paper sign-in logs and manual notification processes. It bridges the gap between visitor arrival, host notification, and room allocation by integrating with existing Microsoft enterprise tools that teams already use daily.
Built as a full-stack monorepo, the system demonstrates how to architect and deploy applications that integrate deeply with Microsoft's enterprise ecosystem while maintaining responsive, mobile-friendly user experiences at the office front desk.
Key Features
- Visitor Check-In Portal: iPad or kiosk-friendly interface for self-service visitor registration with name, purpose, and host notification
- Azure AD Integration: Role-based access control with seamless sign-in for office staff reviewing visitor logs and managing check-outs
- Teams Notifications: Automated alerts sent directly to Microsoft Teams when a visitor arrives for a specific host, with one-click check-in confirmation
- Outlook Calendar Sync: Automatic room allocation based on Outlook calendar availability, preventing double-booking and optimizing space utilization
- Visitor History & Logging: Complete audit trail of visits, hosts, durations, and purposes for security and compliance
- Mobile-First Design: Responsive interface optimized for iPad, tablets, and phones with touch-friendly interactions
Technical Architecture
Frontend
- React 19 with TypeScript
- Vite for fast development and bundling
- Responsive CSS for mobile-first design
- Real-time UI updates with WebSocket support
Backend
- Node.js with Express framework
- Azure SDK for enterprise authentication
- Microsoft Graph API for Teams and Outlook integration
- Database abstraction for visitor records
Enterprise Integrations
- Azure Active Directory (Entra ID)
- Microsoft Teams Webhooks
- Outlook Calendar API
- Role-based access control (RBAC)
Monorepo Architecture
This project demonstrates modern full-stack monorepo development practices, with shared utilities, types, and configuration across client and server codebases. The architecture supports:
- Shared TypeScript types between frontend and backend
- Unified build and deployment pipeline
- Code reuse for validation, formatting, and utilities
- Consistent dependency management across the stack
- Streamlined development environment setup
Impact & Outcomes
The Visitor Booking System delivers tangible improvements to office operations and security:
- Reduces visitor check-in time from minutes to seconds with self-service kiosks
- Eliminates paper logs and manual host notifications
- Provides hosts with instant awareness of visitor arrivals via Teams
- Optimizes room allocation and reduces scheduling conflicts
- Creates security audit trail for compliance and incident investigation
- Works seamlessly with existing Microsoft 365 licensing and infrastructure
Enterprise Integration Challenges
Building this system required navigating the complexity of enterprise OAuth flows and Microsoft APIs:
- Azure AD Authentication: Secure token handling and role-based authorization without blocking UX
- Graph API Rate Limiting: Efficient caching and queuing for high-frequency calendar lookups
- Teams Webhook Reliability: Retry logic and delivery confirmation for notifications
- Multi-Tenant Scenarios: Supporting organizations with multiple Azure AD directories
- Offline Resilience: Graceful degradation when external APIs are temporarily unavailable