ScanMonitorApps is a mobile application designed to help Jump staff monitor ticket scanner activities during sports games. It provides real-time visibility into scanning operations, enabling staff to ensure smooth entry processes and quickly identify potential issues without leaving their posts or accessing desktop systems.
- Display of total scan counts over the last 2 hours
- Auto-refresh of metrics every 5 minutes
- Manual refresh via pull-to-refresh gesture
- Offline mode with cached data when network is unavailable
- Clear status indicators for data freshness and connectivity
- Simple, high-contrast UI designed for stadium environments
ScanMonitorApps uses a client-only architecture with a modern MVVM (Model-View-ViewModel) pattern. It directly integrates with the Datadog API to retrieve scanning metrics without requiring a backend server.
For detailed architecture documentation, see High-Level Architecture.
- Programming Language: Kotlin 2.0.0
- UI Framework: Jetpack Compose for modern, declarative UI
- Architecture Components: ViewModel, StateFlow, Coroutines
- Networking: Retrofit for API communication
- Dependency Injection: Koin 3.4.0+
- Logging: Timber 5.0.0+
- API Integration: Datadog API for metrics retrieval
- Minimum Android Version: API 24 (Android 7.0)
- JDK 17
- Android Studio Hedgehog (2023.1.1+)
- Android SDK with API level 24+ installed
- Datadog API and Application keys
- Clone the repository
- Configure Datadog API keys (see Datadog Integration)
- Open the project in Android Studio
- Build and run the application
For detailed setup instructions, see Development Environment Setup.
src/android/app/src/main/java/com/jump/scanmonitor/
model/
- Data classes and domain modelsviewmodel/
- ViewModels managing UI staterepository/
- Data repositories and mappersservice/
- API, cache, and network servicesui/
- Composable UI components and screensdi/
- Dependency injection modulesutil/
- Utility classes
MainActivity.kt
- Entry point for the applicationScanMonitorApplication.kt
- Application class for initializationScanMetricsViewModel.kt
- Manages scanning metrics data and UI stateMetricsDashboardScreen.kt
- Main UI screen displaying metrics
- Make changes to the codebase
- Run tests to ensure functionality
- Build and test on device or emulator
- Submit pull request with detailed description
./gradlew assembleDebug
./gradlew assembleRelease
The application is distributed to Jump staff through Google Play Internal Testing track or direct APK installation.
For detailed build and distribution instructions, see Build Instructions.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code follows the project's coding standards and includes appropriate tests.
Copyright © 2023 Jump. All rights reserved.
This is proprietary software. Unauthorized copying, modification, distribution, or use is strictly prohibited.