Overview
Built as a companion to the Selangor International Care Summit (SICS) 2025 digital platform, this Android app was developed solely by me using Flutter to handle on-ground attendee check-in across a 4-day international event at the Kuala Lumpur Convention Centre. The app handled over 6,000 attendees — roughly 1,000 scans per day — and was used by event staff stationed across multiple halls and sessions. QR codes were generated by the Laravel backend and the app was responsible for validating them in real time, displaying rich attendee info, and syncing check-in records reliably even under poor venue network conditions.
Key Features
- QR Code Scanning: Fast camera-based scanning that validates attendee QR codes against the Laravel backend in real time
- Attendee Info Display: Upon successful scan, instantly displays name, ticket type, and other relevant attendee details
- Online / Offline Mode: App gracefully handles poor or intermittent connectivity by queuing scans locally and syncing when the network recovers
- Real-Time Backend Sync: All check-ins are pushed to the Laravel API immediately when online, keeping dashboard data current for organisers
- Multi-Session & Multi-Hall Support: Operators can select the active session or hall, ensuring check-ins are recorded against the correct event segment
- Duplicate Scan Prevention: Backend validation flags already-checked-in attendees and surfaces a clear on-screen warning to prevent double entry
- Operator Login: Role-based authentication so only authorised event staff can access the scanner app
- Manual Attendee Lookup: Staff can search for an attendee by name or ID as a fallback when QR codes are damaged or unreadable
Challenges
- Poor venue network: The KLCC event floor had inconsistent Wi-Fi across halls. Implemented an offline-first queue that batched and retried check-in requests, ensuring zero data loss even during prolonged dropouts.
- High scan volume under pressure: Peak periods saw bursts of concurrent scans across multiple devices. Optimised API response payloads and added local caching of attendee data to keep the scan-to-confirmation time under 1 second.
- Duplicate and invalid scans: Edge cases like re-entry attempts and tampered QR codes required robust server-side validation with clear, unambiguous UI feedback for on-ground staff.
Technologies Used
- Flutter: Cross-compiled to Android; responsible for the full UI, QR camera integration, offline queue logic, and session management.
- Laravel: Backend API that generated and stored QR codes, validated scan requests, recorded check-in timestamps, and returned attendee data in real time.
- MySQL: Stored attendee registrations, ticket data, session assignments, and all check-in records tied to the summit.




