# Training Monitor Real-time monitoring system for ML training processes, specialized for diffusion model training visualization. ## Features - Real-time training progress visualization - Training metrics monitoring (loss, learning rate, ETA) - Sample image gallery with timeline view - Remote SFTP data source integration - Docker-based deployment ## Project Structure ``` training-monitor/ ├── frontend/ # React frontend application │ ├── src/ │ ├── public/ │ ├── Dockerfile │ └── package.json ├── backend/ # FastAPI backend application │ ├── app/ │ │ ├── api/ # API routes │ │ ├── core/ # Core functionality │ │ ├── models/ # Data models │ │ └── services/ # Business logic │ ├── tests/ │ └── Dockerfile ├── docker/ │ └── docker-compose.yml └── scripts/ # Utility scripts ``` ## Tech Stack - **Frontend**: React (v18+) - Tailwind CSS for styling - React Query for data fetching - React Router for navigation - **Backend**: FastAPI - Paramiko for SFTP operations - Pydantic for data validation - SQLAlchemy for database (if needed) ## Setup Instructions 1. Clone the repository: ```bash git clone https://github.com/yourusername/training-monitor.git cd training-monitor ``` 2. Start the development environment: ```bash docker-compose up --build ``` The application will be available at: - Frontend: http://localhost:3000 - Backend API: http://localhost:8000 - API Documentation: http://localhost:8000/docs ## Development ### Frontend Development ```bash cd frontend npm install npm run dev ``` ### Backend Development ```bash cd backend python -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows pip install -r requirements.txt uvicorn app.main:app --reload ``` ## Configuration Create a `.env` file in the root directory: ```env # Backend SFTP_HOST=42.42.42.42 SFTP_USER=username SFTP_PASSWORD=your_password SFTP_PATH=/data/samples # Frontend REACT_APP_API_URL=http://localhost:8000 ``` ## Contributing 1. Create a feature branch 2. Commit your changes 3. Push to the branch 4. Create a Pull Request ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.