2.0.0
1. Account System and Authentication
- User registration and login
- Username/password registration and login
- Username uniqueness validation
- Password strength validation
- Password encrypted storage (encryption service)
- Phone-number registration and login
- Phone-number format validation (China 11-digit numbers)
- SMS verification-code sending and verification (6-digit code)
- Verification-code countdown
- Phone-number-to-user binding
- Email registration and login
- Email format validation
- Email verification-code sending and verification
- Email-to-user binding
- Third-party account registration and login
- Third-party account binding
- Third-party account login
- Third-party account unbinding
- Multiple third-party platform integrations supported
- Password recovery and reset
- Username/password recovery
- Phone-number password recovery
- SMS verification-code verification
- New password setup
- Email password recovery
- Email verification-code verification
- Password-reset link sending
- Password change
- Old-password verification
- New-password strength check
- JWT Token management
- JWT Token generation and signing
- Token refresh mechanism
- Token expiration handling
- Token blacklist management (Redis cache)
- Login-user tenant ID cache
- Permission control system (RBAC)
- Tenant management (Tenant)
- Tenant CRUD
- Tenant type management
- Tenant-bound team user management
- Tenant-bound personal-space user management
- Tenant blocklist configuration
- Organization management (Org)
- Organization tree-structure management
- Organization CRUD
- Organization hierarchy maintenance
- Organization selector component
- User management (User)
- User basic-info management
- User status management (activate/disable)
- User cancellation listener
- User selector component
- User-tenant relationship management
- User tag management
- Employee management (Employee)
- Employee basic-info management
- Employee CRUD
- Employee attachment management
- Employee fingerprint management
- Employee NFC card management
- Employee talk-group management
- Employee download-task management
- Employee download-task file index
- Employee-bound user (Employee User)
- Employee-user binding relationship management
- Employee-bind-user consumer
- Employee message listener
- Role management (Role)
- Role CRUD
- Role-permission association
- Role-user association
- Role-organization association
- Role message listener
- User-group management (User Group)
- User-group CRUD
- User-group-role association
- User-group-user association
- User-group message listener
- Permission management (Permission)
- Permission-point definition and management
- Permission-user association
- Permission checkbox component
- Permission code validation
2. Live Streaming (WebRTC + Janus Gateway)
- Single-stream live (Single Live Video)
- Map-view live (To-B-1 Map View)
- Leaflet map integration
- Map markers showing device location
- Map layer switching (base map, satellite, etc.)
- Tap device marker to play
- Drag device to a map position
- Map zoom and pan
- Device online status shown on the map
- Grid-view live (To-C-1 Grid View)
- Device list display
- Device filtering (Device No, Org, online status)
- Device online-status statistics
- Tap a device card to play the live stream
- Device card hover preview
- WebRTC P2P live component
- RTCRtpSender codec capability detection (H265/H264/VP8/VP9)
- Janus Gateway SDP signaling exchange
- ICE candidate exchange (IceServer)
- STUN/TURN server configuration
- Live-stream establishment and keepalive
- Player controls (play/pause/fullscreen)
- Double-click fullscreen
- Multi-stream live (Multi Live Video)
- Multi-grid layout live
- 1-stream fullscreen layout
- 2x2 (4-grid) layout
- 3x3 (9-grid) layout
- 4x4 (16-grid) layout
- 5x5 (25-grid) layout
- 6x6 (36-grid) layout
- 1+5 (1 large, 5 small) layout
- 1+7 (1 large, 7 small) layout
- 1+9 (1 large, 9 small) layout
- 1+11 (1 large, 11 small) layout
- Multi-stream management
- Device-number list management
- Grid-to-device mapping management
- Drag to swap positions within a grid
- Dynamically add/remove live streams
- Bulk close live streams
- Grid-layout switching
- Layout-type selector
- Layout auto-fits device count
- Layout retains valid mappings
- Playback
- Playback device list
- Device filtering (Device No, Org, online status)
- Device online-status statistics
- Device card display
- Single-device playback
- Video playback player
- Audio playback player
- Image playback player
- Generic player component
- Playback time picker
- Playback progress-bar control
- Playback speed (0.5x/1x/1.5x/2x)
- Playback file download
- Playback snapshot
- Media-file management
- Filter media files by date
- Calendar UI for date selection
- File-existence check
- Date highlighting (dates with files)
- File-type filter (image/audio/video/alarm/normal)
- Group display by time
- File preview
- File search
- Pagination support
- WebRTC technical details
- Janus Gateway integration
- Janus Admin API forwarding
- Janus signaling-message forwarding
- Janus result-message handling
- Janus configuration retrieval
- Janus ID retrieval
- WebRTC online-status management
- Device WebRTC online-status query
- Device WebRTC online-status list
- Device WebRTC status list
- Server WebRTC online status
- Server WebRTC online list
- Device WebRTC keepalive
- Server WebRTC keepalive
- ICE Server management
- ICE Server list retrieval
- STUN Server configuration
- TURN Server configuration
- Coturn service deployment
3. Remote Control
- Data Acquisition Server remote control
- Server remote-control page
- Server info display
- Server status monitoring
- Server configuration view
- Server WebRTC configuration
- Server settings
- Disk management settings
- Service management settings
- Other configuration
- Server dropdown menu
- Quick-action menu
- Server restart/shutdown
- Server log view
- Data Acquisition Device remote control
- Device remote-control page
- Device info display
- Device status monitoring
- Device configuration view
- Device WebRTC configuration
- Device settings
- Live settings
- Video settings
- Recording settings
- Audio settings
- Image settings
- Time settings
- WiFi parameter settings
- Mobile network parameter settings
- Security parameter settings
- User settings
4. Device Management (Device)
- Device model management
- Manufacturer management (Manufacturer)
- Manufacturer CRUD
- Manufacturer message listener
- Device type management (Device Type)
- Device type CRUD
- Device type selector
- Device type message listener
- Data Acquisition Server model (Data Acquisition Server Model)
- Model CRUD
- Model view page
- Model message listener
- Data Acquisition Device model (Data Acquisition Device Model)
- Model CRUD
- Model edit page
- Model view page
- Model selector
- Model message listener
- Data Acquisition Box model (Data Acquisition Box Model)
- Model CRUD
- Model view page
- Model selector
- Model message listener
- Fingerprint scanner model (Fingerprint Scanner Model)
- Model CRUD
- Model message listener
- NFC card model (NFC Card Model)
- Model CRUD
- Model message listener
- Talk server model (Talk Server Model)
- Model CRUD
- Model message listener
- File storage server model (File Storage Server Model)
- Model CRUD
- Model message listener
- Device instance management
- Data Acquisition Server (Data Acquisition Server)
- Server CRUD
- Server edit page
- Server view page
- Server list page
- Server message listener
- Server file-storage binding
- Data Acquisition Device (Data Acquisition Device)
- Device CRUD
- Device add page
- Device edit page
- Device view page
- Device message listener
- Device-info message listener
- Device status save
- Device location save
- Device info save
- Server-Device binding (Server Data Acquisition Device)
- Binding CRUD
- Binding add page
- Binding view page
- Binding list page
- Data Acquisition Box (Data Acquisition Box)
- Box CRUD
- Box message listener
- Box-fingerprint-scanner binding
- Fingerprint scanner (Fingerprint Scanner)
- Scanner CRUD
- Scanner message listener
- Fingerprint-report message listener
- NFC card (NFC Card)
- NFC card CRUD
- NFC verification message listener
- NFC report message listener
- Talk server (Talk Server)
- Talk server CRUD
- Talk server device binding
- Talk server message listener
- File storage server (File Storage Server)
- Common device management
- Device base controller
- Device-model base class
- Device message listener
- Device-model message listener
- Device-share management
- Device-model selector
- Firmware upgrade management (Firmware Package)
- Firmware package management
- Firmware package CRUD
- Firmware package add page
- Firmware package list page
- Firmware package upload
- Firmware package download root-path configuration
- Firmware info management
- Get device firmware info
- List device firmware info
- Push single firmware info
- Bulk push firmware info
- Firmware fetch function
- Firmware upgrade flow
- Upload firmware package to server
- Push firmware info to device
- Device downloads firmware package
- Device upgrade-progress monitoring
- Upgrade success/failure status reporting
- Firmware rollback
- Device online-status management
- IoT online status
- Device IoT online-status query
- Device IoT online-status list
- Device IoT status list
- Device IoT keepalive
- Server IoT keepalive
- Online-status sync
- Online-status-list consumer
- Online-status keepalive consumer
- Device online-status sync scheduler
- Common status management
- Device status list
- User online query
- User online list
- User keepalive
- Device data encryption
- Device data encryption function
- Device data decryption function
- Secure-encoder integration (es-secure-encoder)
- WASM compilation
- Data encryption
- JavaScript interop
- Key management and data encryption
5. Report Management (Report)
- User log (User Log)
- User operation-log query
- Log list query
- Log pagination query
- Log update
- Log message listener
- Operation-log recording
- User login log
- User operation audit
- Operation-time recording
- Operation-IP recording
- MQTT connection log (MQTT Connection Log)
- MQTT connection-log query
- Connection-log list
- Connection-time statistics
- Connection success/failure records
- MQTT connection scheduler
- MQTT public-account sync scheduler
- MQTT account management
- MQTT account save function
- MQTT account removal consumer
- MQTT account DTO
- MQTT connection statistics (MQTT Connection Statistics)
- Connection-statistics report
- Online-device count statistics
- Offline-device count statistics
- Connection-peak statistics
- Connection-duration statistics
- System-agent message listener
- GPS log (GPS Log)
- GPS log query
- GPS position-record list
- GPS track playback
- GPS position update time
- GPS accuracy info
- GPS document-add scheduler
- GPS API
- GeoJSON API
- Battery level log (Battery Level Log)
- Battery-level log query
- Battery-record list
- Battery-level trend
- Low-battery alert
- Charging-status record
- Battery document-add scheduler
- Admin view
- To-B view
- Other logs
- My-log listener
- My-log scheduler
- My-log function
- Zfygb document-add scheduler
6. Configuration Management (Configuration)
- Data dictionary (Data Dictionary)
- Data dictionary type (Data Dictionary Type)
- Type CRUD
- Type add page
- Type edit page
- Type view page
- Type list page
- Data dictionary (Data Dictionary)
- Dictionary CRUD
- Dictionary add page
- Dictionary selector
- Data dictionary map (Data Dictionary Map)
- Map CRUD
- Map add page
- Map edit page
- Map view page
- Map list page
- Map API
- Data dictionary table (Data Dictionary Table)
- Table CRUD
- Table add page
- Table edit page
- Table view page
- Table list page
- Value set (Value Set)
- Value set type (Value Set Type)
- Type CRUD
- Type add page
- Type selector
- Value set (Value Set)
- Value set CRUD
- Value set add page
- Value set view page
- Value set map (Value Set Map)
- Map CRUD
- Map add page
- Map API
- Value set table (Value Set Table)
- Table CRUD
- Table edit page
- Translation management (Translation)
- Translation CRUD
- Translation edit page
- Translation listener
- Multi-language support
- Chinese (zh-CN)
- English (en-US)
- SMS configuration (SMS Config)
- SMS configuration management
- SMS configuration CRUD
- SMS configuration list page
- SMS template management
- Template CRUD
- Template-SMS-config association
- SMS sending
- SMS send API
- SMS send records
- SMS package management
- SMS package query
- SMS balance management
- Other configuration
- Email configuration (Email Config)
- Email configuration CRUD
- Email template management
- Email-template-config association
- Email sending
- Notification configuration (Notification Config)
- Notification configuration CRUD
- Notification template management
- Notification-template-config association
- Notification sending
- Notification user management
- Base configuration controller
7. Operations Management
- Database backup (Database Backup)
- Database backup management
- Backup list query
- Manual backup trigger
- Automatic backup scheduler
- Backup file management
- Backup file operations
- Backup file download (single/batch)
- Backup file-size display
- Backup modified-time display
- Backup type marker (auto/manual)
- Backup security authentication
- Timestamp retrieval
- Token security verification
- Encryption-service integration
- Device file backup (Device File Backup)
- Device file backup management
- Backup task creation
- Backup progress monitoring
- Backup file list
- File-index management
- File-index CRUD
- File-index thumbnail
- File-index message listener
- File upload controller
- File upload function
- DMS function
- Agent client (Rust)
- System management
- System timestamp retrieval
- System status monitoring
- User management
- User service
- User repository
- User model
- User DTO
- Backup management
- Backup service implementation
- Backup DTO
- Message-queue integration
- Producer
- Consumer
- Message-queue configuration
- Task scheduling
- Database integration
- SQLx PostgreSQL support
- Database connection pool
- API layer
- Axum web framework
- RESTful API implementation
- Swagger UI integration
- Configuration management
- Application configuration
- Environment-variable configuration
- Security authentication
- Password encryption
- Ring crypto library
8. History Data Management (History)
- Device status history
- Device status history
- Status-change records
- Status snapshots
- Device location history
- Location-change records
- Location snapshots
- Data sync history
- Data sync history
- Sync-record query
- Sync snapshots
- Server data-sync audit
- Device usage history
- Data Acquisition Box usage history
- Usage-record query
- Usage snapshots
- Fingerprint scanner usage history
- Usage-record query
- Usage snapshots
- NFC card usage history
- Usage-record query
- Usage snapshots
- Device check-out / return history
- Device check-out history
- Check-out record query
- Check-out snapshots
- Device return history
- Return record query
- Return file index
- Return snapshots
9. Order Management (Order)
- Order management
- Order CRUD
- Order-item management
- Product management
10. Base Data Management (Base Data)
- Talk-group management
- Talk-group CRUD
- Employee-talk-group association
- Storage strategy
11. Messaging and Event Handling
- MQTT message gateway
- MQTT Gateway
- MQTT connection management
- MQTT message publishing
- MQTT message subscription
- MQTT QoS control
- MQTT configuration
- EMQX Broker integration
- MQTT topic management
- MQTT authentication and authorization
- IoT message consumers
- IoT V1 consumer
- IoT V1 search consumer
- IoT V1 categorized-info list
- IoT V1 categorized-info reporting
- Device-list refresh notification
- Message-listener base classes
- Message listener
- Query message listener
- WebRTC message listener
- Management message listener
- Application event listeners
- Display-info application listeners
- Main-service application listener
- Device-service application listener
12. System Infrastructure
- Cache management
- JetCache integration
- Redis cache
- Local cache
- Cache tiering
- Cache configuration
- Cache controller
- String cache
- Database integration
- MyBatis Plus configuration
- Mapper interfaces (98 Mappers)
- Entities (98 Entities)
- Services (98 Services)
- MyBatis XML mapping files (392 Mapper XMLs)
- Full-text search
- MeiliSearch integration
- MeiliSearch configuration
- MeiliSearch proxy controller
- MeiliSearch API
- Document indexing
- GPS document index
- Battery document index
- Other document indexes
- Security configuration
- Spring Security configuration
- JWT authentication
- Permission interception
- Password encryption
- Security Utils
- CORS configuration
- CSRF protection
- Task scheduling
- Async-task configuration
- Scheduled tasks
- GPS document-add scheduler
- Battery document-add scheduler
- MQTT connection scheduler
- Device online-status sync scheduler
- Other business schedulers
- REST client
- RestClient configuration
- HTTP request wrapper
- Exception handling
- API documentation
- SpringDoc configuration
- Swagger UI
- OpenAPI 3.0 specification
- JSON processing
- Jackson configuration
- ObjectMapper customization
- Date formatting
- Spring configuration
- Spring configuration
- Environment configuration
- Profiles management (dev/prod)
- ES Center Server configuration
- Configuration properties
- Custom configuration
- Plus configuration
- AOP aspects
13. Frontend Architecture (React Router 7 + TypeScript)
- Routing
- 191 route pages
- 341 TSX component files
- Nested route structure
- Dynamic route parameters
- UI component library
- Shadcn UI components
- Tailwind CSS styling
- Radix UI primitives
- Responsive design
- Desktop adaptation
- Mobile adaptation
- Tablet adaptation
- Multi-resolution support
- Interaction experience
- Animation effects
- Transition effects
- Loading states
- Error feedback
- State management
- Zustand state management
- Device state management
- User state management
- React Hook Form
- Form validation
- Form state management
- Data requests
- ahooks useRequest
- Request caching
- Request polling
- Request debounce/throttle
- API client wrapper
- Map integration
- Leaflet map library
- Leaflet.markercluster clustering
- proj4leaflet projection conversion
- Map component wrapper
- Internationalization
- react-i18next
- Translation-resource management
- Performance optimization
- Code splitting
- Lazy loading
- Cache strategy
- Performance monitoring
14. Installation and Deployment (Python Installer)
- Docker container deployment
- Docker install script
- Docker image loading
- Docker image download
- Service deployment scripts (77 deployment scripts)
- PostgreSQL deployment
- Redis deployment
- MeiliSearch deployment
- EMQX deployment
- ActiveMQ Artemis deployment
- Coturn deployment
- Janus deployment
- Nginx deployment
- Nginx SSL deployment
- Main-service deployment
- Device-service deployment
- Agent deployment
- Web app deployment
- Launcher deployment
- Service initialization
- Installation management
- Install-service core
- Upgrade-service core
- Update-service core
- SSL update service
- Coturn service install
- Janus service install
- CLI tool
- Command-line interface
- Common utilities
15. Version Control and Collaboration
- Git management
- Git repository management
- Branch strategy
- Commit conventions
- Multi-module architecture
- Main-service module (es-center-server-main-service)
- 128 Controllers
- User-center management
- Device management
- Configuration management
- Device-service module (es-center-server-device-service)
- MQTT message handling
- WebRTC signaling handling
- Device status management
- DTO module
- Device DTO
- Log DTO
- Base-data DTO
- Other DTO modules
- Common module
- Common device logic
- Common base-data logic
- Common history-data logic
- Other common modules (26 Common modules)
- Dependency management
- Gradle 9.2.1 build tool
- Version-catalog management
- Dependency-update checks
16. Statistics
- Code scale
- Backend Java files: 1496
- Frontend TSX files: 341
- Controllers: 128
- Services: 98
- Mapper interfaces: 98
- Entities: 98
- MyBatis XML: 392
- Listeners: 71
- Consumers: 16
- Route pages: 191
- Tech-stack statistics
- Backend framework: Spring Boot 3.5.8 + MyBatis Plus
- Frontend framework: React Router 7 + TypeScript
- Database: PostgreSQL
- Cache: Redis + JetCache
- Message queue: ActiveMQ Artemis
- MQTT Broker: EMQX
- WebRTC: Janus Gateway
- Full-text search: MeiliSearch
- Agent service: Rust + Axum
- Encryption service: Rust + WASM
- Install tooling: Python
- Containerization: Docker
- Map: Leaflet
- UI components: Shadcn UI + Tailwind CSS