Implement a simple in-memory cache using a dictionary with TTL support to reduce database load for repeated queries. The cache is integrated into the data retrieval functions, with configurable expiration times and automatic cleanup of stale entries.
This commit updates the .gitignore file to exclude common Python development artifacts
such as __pycache__ directories, .env files, virtual environment folders, and other
standard Python project ignores.
Implement a new binary selection dropdown and device parameter input field in the device configuration interface, enabling users to choose from available binaries and specify device-specific settings for enhanced flexibility.
- Updated plot.py to remove retoor-specific logic, enabling general user support
- Added handling for the lowest score review received, integrating it into the review system
The commit introduces a new plot function that visualizes user growth data using matplotlib. It creates a line chart with dates on the x-axis and user counts on the y-axis, including axis labels, a title, and a grid for improved readability. The plot is saved to a PNG file for documentation purposes.
The README now includes a brief overview of the project's purpose, prerequisites for running the application, and step-by-step installation commands for new contributors.
Implement a new session statistics module that records session duration, completion rates, and user engagement metrics. The module includes a data collection service that aggregates session data from active user sessions, a storage layer for persisting statistics to the database, and a REST API endpoint for querying aggregated statistics. Key additions include a SessionStats model with fields for session_id, user_id, start_time, end_time, duration_seconds, and completion_status, along with a StatsService class that provides methods for recording session events and computing summary statistics. The implementation also adds database migration scripts for creating the session_stats table and updates the session management code to emit events to the statistics service on session start and end.