Commit Graph

49 Commits

Author SHA1 Message Date
Alireza Vaezi
eaf509fbf8 Add api/ and web/ via git subtree; add docker-compose.yml and unified .gitignore 2025-08-07 20:58:28 -04:00
Alireza Vaezi
0b0e575080 Add 'web/' from commit '81828f61cf893039b89d3cf1861555f31167c37d'
git-subtree-dir: web
git-subtree-mainline: 7dbb36d619
git-subtree-split: 81828f61cf
2025-08-07 20:57:47 -04:00
Alireza Vaezi
7dbb36d619 Add 'api/' from commit '14ac229098e65aa643f84e8e17e0c5f1aaf8d639'
git-subtree-dir: api
git-subtree-mainline: 4743f19aef
git-subtree-split: 14ac229098
2025-08-07 20:57:34 -04:00
Alireza Vaezi
4743f19aef Initial commit: Add project README 2025-08-07 10:53:16 -04:00
Alireza Vaezi
81828f61cf feat(video-streaming): add ApiStatusIndicator, PerformanceDashboard, VideoDebugger, and VideoErrorBoundary components
- Implemented ApiStatusIndicator to monitor video API connection status with health check functionality.
- Created PerformanceDashboard for monitoring video streaming performance metrics in development mode.
- Developed VideoDebugger for diagnosing video streaming issues with direct access to test video URLs.
- Added VideoErrorBoundary to handle errors in video streaming components with user-friendly messages and recovery options.
- Introduced utility functions for performance monitoring and thumbnail caching to optimize video streaming operations.
- Added comprehensive tests for video streaming API connectivity and functionality.
2025-08-06 11:46:25 -04:00
Alireza Vaezi
14ac229098 streaming fix 2025-08-05 15:55:48 -04:00
Alireza Vaezi
07e8e52503 Add comprehensive video streaming module and AI agent integration guide
- Introduced a new video streaming module with endpoints for listing, streaming, and managing video files.
- Added detailed API documentation for video streaming, including features like HTTP range requests, thumbnail generation, and caching.
- Created a new AI Agent Video Integration Guide with step-by-step instructions for integrating with the video streaming API.
- Implemented a video reindexing script to update video statuses from "unknown" to "completed".
- Enhanced error handling and logging throughout the video streaming and reindexing processes.
2025-08-05 14:44:31 -04:00
Alireza Vaezi
228efb0f55 feat: add Pagination component for video list navigation
- Implemented a reusable Pagination component with first/last, previous/next, and numbered page buttons.
- Added PageInfo component to display current page and total items.
- Integrated pagination into VideoList component, allowing users to navigate through video pages.
- Updated useVideoList hook to manage current page and total pages state.
- Modified videoApi service to support pagination with offset-based API.
- Enhanced VideoCard styling for better UI consistency.
- Updated Tailwind CSS configuration to include custom colors and shadows for branding.
- Refactored video file settings to use 'h264' codec for better compatibility.
2025-08-05 13:56:26 -04:00
Alireza Vaezi
14757807aa Enhance video file handling: support multiple formats (AVI, MP4, WEBM) in storage manager 2025-08-05 13:53:28 -04:00
Alireza Vaezi
37553163db Implement video processing module with FFmpeg conversion, OpenCV metadata extraction, and file system repository
- Added FFmpegVideoConverter for video format conversion using FFmpeg.
- Implemented NoOpVideoConverter for scenarios where FFmpeg is unavailable.
- Created OpenCVMetadataExtractor for extracting video metadata.
- Developed FileSystemVideoRepository for managing video files in the file system.
- Integrated video services with dependency injection in VideoModule.
- Established API routes for video management and streaming.
- Added request/response schemas for video metadata and streaming information.
- Implemented caching mechanisms for video streaming.
- Included error handling and logging throughout the module.
2025-08-04 16:44:53 -04:00
Alireza Vaezi
7bc76d72f9 feat: Update camera configuration to support MP4 format with new settings
- Changed machine topic from "vibratory_conveyor" to "blower_separator" for camera1
- Updated exposure and gain settings for camera1
- Added new video recording settings: video_format, video_codec, video_quality, auto_start_recording_enabled, auto_recording_max_retries, auto_recording_retry_delay_seconds
- Enhanced documentation to reflect current configuration and API alignment
- Redesigned Camera Configuration UI to display read-only fields for system and auto-recording settings
- Improved handling of video format settings in the API and frontend
- Created CURRENT_CONFIGURATION.md for complete system configuration reference
2025-08-04 16:44:45 -04:00
Alireza Vaezi
1aaac68edd feat(video): Implement MP4 format support across frontend and backend
- Updated VideoModal to display web compatibility status for video formats.
- Enhanced VideoPlayer to dynamically fetch video MIME types and handle MP4 streaming.
- Introduced video file utilities for better handling of video formats and MIME types.
- Modified CameraConfig interface to include new video recording settings (format, codec, quality).
- Created comprehensive documentation for MP4 format integration and frontend implementation.
- Ensured backward compatibility with existing AVI files while promoting MP4 as the preferred format.
- Added validation and error handling for video format configurations.
2025-08-04 16:21:22 -04:00
Alireza Vaezi
551e5dc2e3 feat(video-streaming): Implement video streaming feature with components, hooks, services, and utilities
- Added centralized exports for video streaming components and hooks.
- Implemented `useVideoInfo` hook for fetching and managing video metadata and streaming information.
- Developed `useVideoList` hook for managing video list state, fetching, filtering, and pagination.
- Created `useVideoPlayer` hook for managing video player state and controls.
- Established `videoApiService` for handling API interactions related to video streaming.
- Defined TypeScript types for video streaming feature, including video metadata, API responses, and component props.
- Added utility functions for video operations, formatting, and data processing.
- Created main entry point for the video streaming feature, exporting all public APIs.
2025-08-04 15:02:48 -04:00
Alireza Vaezi
97f22d239d feat: Enhance camera streaming functionality with stop streaming feature and update UI for better user experience 2025-07-31 22:17:08 -04:00
Alireza Vaezi
28400fbfb8 Enhance camera configuration and auto-recording functionality
- Updated CameraStreamer to configure streaming settings from config.json, including manual exposure, gain, image quality, noise reduction, and color settings.
- Added new methods in CameraStreamer for configuring image quality, noise reduction, color settings, and advanced settings.
- Extended CameraConfig to include manual white balance RGB gains.
- Improved AutoRecordingManager to handle camera status updates and ensure proper recording starts/stops based on machine state changes.
- Created detailed configuration documentation for blower and conveyor cameras, outlining settings and their mappings to config.json.
- Implemented a comprehensive test script for auto-recording functionality with simulated MQTT messages, verifying correct behavior on machine state changes.
2025-07-29 13:54:16 -04:00
Alireza Vaezi
1f47e89a4d feat: Add camera preview functionality and recording controls to VisionSystem 2025-07-29 12:31:03 -04:00
Alireza Vaezi
0d20fe189d feat: Add CameraPreviewModal component for live camera streaming
feat: Implement useAuth hook for user authentication management

feat: Create useAutoRecording hook for managing automatic recording functionality

feat: Develop AutoRecordingManager to handle automatic recording based on MQTT events

test: Add test script to verify camera configuration API fix

test: Create HTML page for testing camera configuration API and auto-recording fields
2025-07-29 12:30:59 -04:00
Alireza Vaezi
a6514b72c9 Enhance API server configuration: add auto-recording settings and improve image quality parameters 2025-07-29 11:28:04 -04:00
Alireza Vaezi
7e3169f336 Remove compiled Python bytecode files from the __pycache__ directories 2025-07-29 11:27:58 -04:00
Alireza Vaezi
ff7cb2c8f3 Add comprehensive tests for camera streaming, time synchronization, and auto-recording functionality
- Implemented test script for camera streaming functionality, covering API endpoints and concurrent recording.
- Created time verification script to check system time synchronization against multiple APIs.
- Developed timezone utility tests to validate timezone functions and logging.
- Added integration tests for system components, including configuration, camera discovery, and API endpoints.
- Enhanced MQTT logging and API endpoint tests for machine and MQTT status.
- Established auto-recording tests to simulate state changes and verify automatic recording behavior.
- Created simple tests for auto-recording configuration and API model validation.
2025-07-29 11:15:10 -04:00
Alireza Vaezi
0c92b6c277 feat: Integrate auto-recording feature into USDA Vision Camera System
- Added instructions for implementing auto-recording functionality in the React app.
- Updated TypeScript interfaces to include new fields for auto-recording status and configuration.
- Created new API endpoints for enabling/disabling auto-recording and retrieving system status.
- Enhanced UI components to display auto-recording status, controls, and error handling.
- Developed a comprehensive Auto-Recording Feature Implementation Guide.
- Implemented a test script for validating auto-recording functionality, including configuration checks and API connectivity.
- Introduced AutoRecordingManager to manage automatic recording based on machine state changes with retry logic.
- Established a retry mechanism for failed recording attempts and integrated status tracking for auto-recording.
2025-07-29 09:43:14 -04:00
Alireza Vaezi
0a26a8046e Refine camera settings: adjust sharpness, contrast, gamma, noise filter, and auto white balance 2025-07-29 07:58:41 -04:00
Alireza Vaezi
ef0f9f85c5 Add USDA Vision Camera Streaming API and related functionality
- Implemented streaming API endpoints for starting, stopping, and retrieving live streams from cameras.
- Added support for concurrent streaming and recording operations.
- Created test scripts for frame conversion and streaming functionality.
- Developed a CameraStreamer class to manage live preview streaming without blocking recording.
- Included error handling and logging for camera operations.
- Added configuration endpoints for camera settings and real-time updates.
- Enhanced testing scenarios for various camera configurations and error handling.
2025-07-28 18:09:48 -04:00
Alireza Vaezi
104f6202fb feat(streaming): Add live streaming functionality for USDA Vision Camera system
- Introduced non-blocking live preview streaming that operates independently from recording.
- Implemented REST API endpoints for starting and stopping streams, and retrieving live streams.
- Developed a web interface (`camera_preview.html`) for users to control and view camera streams.
- Created TypeScript definitions for API integration in React projects.
- Added comprehensive testing script (`test_streaming.py`) to validate API endpoints and concurrent operations.
- Updated database migration to fix visibility of experiment repetitions for all authenticated users.
2025-07-28 17:53:59 -04:00
Alireza Vaezi
7bc8138f24 Add comprehensive test suite for USDA Vision Camera System
- Implemented main test script to verify system components and functionality.
- Added individual test scripts for camera exposure settings, API changes, camera recovery, maximum FPS, MQTT events, logging, and timezone functionality.
- Created service file for system management and automatic startup.
- Included detailed logging and error handling in test scripts for better diagnostics.
- Ensured compatibility with existing camera SDK and API endpoints.
2025-07-28 17:33:49 -04:00
Alireza Vaezi
d598281164 feat: Implement Vision System API Client with comprehensive endpoints and utility functions
- Added VisionApiClient class to interact with the vision system API.
- Defined interfaces for system status, machine status, camera status, recordings, and storage stats.
- Implemented methods for health checks, system status retrieval, camera control, and storage management.
- Introduced utility functions for formatting bytes, durations, and uptime.

test: Create manual verification script for Vision API functionality

- Added a test script to verify utility functions and API endpoints.
- Included tests for health check, system status, cameras, machines, and storage stats.

feat: Create experiment repetitions system migration

- Added experiment_repetitions table to manage experiment repetitions with scheduling.
- Implemented triggers and functions for validation and timestamp management.
- Established row-level security policies for user access control.

feat: Introduce phase-specific draft management system migration

- Created experiment_phase_drafts and experiment_phase_data tables for managing phase-specific drafts and measurements.
- Added pecan_diameter_measurements table for individual diameter measurements.
- Implemented row-level security policies for user access control.

fix: Adjust draft constraints to allow multiple drafts while preventing multiple submitted drafts

- Modified constraints on experiment_phase_drafts to allow multiple drafts in 'draft' or 'withdrawn' status.
- Ensured only one 'submitted' draft per user per phase per repetition.
2025-07-28 16:30:56 -04:00
Alireza Vaezi
9cb043ef5f feat: Add MQTT publisher and tester scripts for USDA Vision Camera System
- Implemented mqtt_publisher_test.py for manual MQTT message publishing
- Created mqtt_test.py to test MQTT message reception and display statistics
- Developed test_api_changes.py to verify API changes for camera settings and filename handling
- Added test_camera_recovery_api.py for testing camera recovery API endpoints
- Introduced test_max_fps.py to demonstrate maximum FPS capture functionality
- Implemented test_mqtt_events_api.py to test MQTT events API endpoint
- Created test_mqtt_logging.py for enhanced MQTT logging and API endpoint testing
- Added sdk_config.py for SDK initialization and configuration with error suppression
2025-07-28 16:30:14 -04:00
Alireza Vaezi
e2acebc056 holy shit a lot has changed! read the readme, I guess... 2025-07-28 16:29:41 -04:00
Alireza Vaezi
731d8cd9ff Enhance time synchronization checks, update storage paths, and improve camera recording management 2025-07-25 22:38:33 -04:00
Alireza Vaezi
69966519b0 Add project completion documentation for USDA Vision Camera System 2025-07-25 21:40:51 -04:00
Alireza Vaezi
381f51a3e6 Implement code changes to enhance functionality and improve performance 2025-07-25 21:39:52 -04:00
Alireza Vaezi
f6d6ba612e Massive update - API and other modules added 2025-07-25 21:39:07 -04:00
Alireza Vaezi
172f46d44d init commit 2025-07-25 12:07:30 -04:00
Alireza Vaezi
df42a0935d Initial commit 2025-07-25 12:06:17 -04:00
Alireza Vaezi
0d0c67d5c1 data entry and draft system work 2025-07-23 21:21:59 -04:00
Alireza Vaezi
511ed848a3 update dependencies and remove test credentials from Login component 2025-07-23 11:46:12 -04:00
Alireza Vaezi
4919efb845 add scheduling functionality for experiments with new ScheduleModal component 2025-07-20 21:07:58 -04:00
Alireza Vaezi
6797519b0a create new experiment works 2025-07-20 19:59:28 -04:00
Alireza Vaezi
bd0ae321de add new experiment 2025-07-20 17:04:51 -04:00
Alireza Vaezi
3ae77a2375 style improved 2025-07-20 12:06:13 -04:00
Alireza Vaezi
41d4654f9f style changed 2025-07-20 11:59:15 -04:00
Alireza Vaezi
b5848d9cba can successfully add new users 2025-07-20 11:33:51 -04:00
Alireza Vaezi
cfa8a0de81 css issue fixed 2025-07-20 11:10:52 -04:00
Alireza Vaezi
6a9ab6afaa RBAC seems to be working 2025-07-20 11:05:58 -04:00
Alireza Vaezi
033229989a Revert "RBAC in place. Tailwind CSS working."
This reverts commit 90d874b15f.
2025-07-18 21:18:07 -04:00
Alireza Vaezi
90d874b15f RBAC in place. Tailwind CSS working. 2025-07-17 12:10:23 -04:00
Alireza Vaezi
5fc7c89219 supabase added 2025-07-17 10:53:16 -04:00
Alireza Vaezi
6ee9371861 blank Vite + React + Tailwind CSS project 2025-07-17 10:44:08 -04:00
Alireza Vaezi
da7b6f7ae7 Initial commit 2025-07-17 10:39:47 -04:00