Entry Scanner is a modern Android application designed for efficient event management and participant tracking. Built with Jetpack Compose and Firebase, this app provides a streamlined solution for checking in team members and participants at events through QR code scanning technology. The application offers real-time synchronization and an intuitive interface for managing team arrivals and attendance.
The core functionality revolves around team-based event management with QR code scanning capabilities. The app supports Firebase Firestore for real-time data synchronization, allowing multiple administrators to track participant arrivals simultaneously. Each participant receives a unique QR code that encodes their team ID and member index, enabling quick and accurate check-ins.
The application features a beautiful and modern Material Design 3 interface built with Jetpack Compose. The GUI provides:
- Team List View: Displays all registered teams with expandable member details
- Real-time Arrival Status: Visual indicators showing who has arrived and who hasn't
- QR Scanner Interface: Clean camera preview with animated scan feedback
- Member Statistics: Live count of arrived vs total members
- Responsive Design: Adapts to different screen sizes and orientations
- QR Code Scanning: Fast and accurate barcode detection using ML Kit
- Team Management: Organized view of teams and their members
- Real-time Updates: Live synchronization with Firebase Firestore
- Arrival Tracking: Mark participants as arrived/not arrived
- Offline Detection: Handles network connectivity changes gracefully
- Camera Permissions: Smooth permission handling with user-friendly prompts
- Material Design 3: Modern and accessible user interface
- Admin Controls: Manual arrival status management through intuitive dialogs
- Visual Feedback: Animated indicators for scan states (scanning, scanned, error)
- Kotlin & Jetpack Compose: Modern Android UI toolkit
- Firebase Firestore: Real-time NoSQL database
- CameraX: Camera integration for QR scanning
- ML Kit Barcode Scanning: Google's machine learning barcode detection
- Navigation Compose: Type-safe navigation
- Coroutines & Flow: Reactive programming and async operations
- MVVM (Model-View-ViewModel): Clean separation of concerns
- Repository Pattern: Data abstraction layer
- Dependency Injection: Modular and testable code structure
- Participant: Contains member details (name, email, school, subject, arrival status)
- Team: Groups participants with metadata (team name, category, creation timestamp)
- First 20 characters: Team ID
- Remaining characters: Member index within the team
- Team List Screen: Overview of all teams and arrival statistics
- QR Scanner Screen: Camera-based scanning interface
- No Internet Screen: Fallback for connectivity issues
- Real-time team data synchronization
- Connectivity status monitoring
- Camera permission state handling
- Android Studio Arctic Fox or later
- Android SDK 26 (Android 8.0) or higher
- Firebase project setup
- Camera-enabled Android device for testing
- Clone the repository
- Open the project in Android Studio
- Configure Firebase (add your
google-services.json) - Build and run the application
The app requires the following permissions:
- Camera: For QR code scanning functionality
- Internet: For Firebase synchronization
- Network State: For connectivity monitoring
- Participant data is securely stored in Firebase Firestore
- Privacy policy compliance built into team registration
- Secure QR code generation and validation
- Network security with Firebase Authentication integration
participants: Stores team and member information- Real-time listeners for live updates
- Structured data validation and error handling
This project is licensed under the MIT License.