Overview
This project is a device management system that implements single session per device functionality, ensuring secure and controlled access across multiple devices. The system includes features for device authentication, session management, and administrative controls.
Requirements
- PHP 8.3
- PostgreSQL
- Redis / Valkey
- FFmpeg (https://ffmpeg.org/download.html)
Features
- Single Session Per Device: Ensures only one active session per device
- Device Authentication: Secure login system with rate limiting
- Session Management: Advanced session handling with unique session IDs
- Real-time Device Logout: Broadcast system for immediate device logout
- Administrative Controls: Super admin capabilities for device management
- Event Broadcasting: Real-time event system for device status updates
Architecture
The project is built on Laravel framework following MVC architecture pattern with the following components:
Core Components
- Frontend: Built with Filament PHP admin panel framework
- Backend: Laravel PHP framework
- Database: PostgreSQL for data persistence
- Cache: Redis/Valkey for session management
- Broadcasting: Laravel Reverb for real-time events
- Media Processing: FFmpeg for media handling
Security Features
- Rate limiting on authentication attempts
- Single session enforcement per device
- Real-time session invalidation
- Admin access controls
- Secure session management through Redis
Broadcasting System
The system uses Laravel Reverb (v1.4) for real-time event broadcasting:
- Handles device logout events
- Manages real-time status updates
- Ensures immediate session invalidation