Skip to content

feat: add web dashboard UI for monitoring and managing cron jobs#10

Open
SimplicityGuy wants to merge 2 commits intomainfrom
webui
Open

feat: add web dashboard UI for monitoring and managing cron jobs#10
SimplicityGuy wants to merge 2 commits intomainfrom
webui

Conversation

@SimplicityGuy
Copy link
Copy Markdown
Owner

@SimplicityGuy SimplicityGuy commented Jan 2, 2026

Summary

Add a comprehensive web-based dashboard that provides real-time monitoring and control of cron jobs. This addresses the need for visibility into job execution history, status tracking, and manual job triggering without requiring command-line access to the container.

Key Features

  • Job monitoring with real-time status updates and health indicator
  • Execution history with stdout/stderr log viewing
  • Manual job triggering via web interface
  • Dashboard statistics (total jobs, failures, recent activity)
  • SQLite database for persistent execution tracking
  • REST API for programmatic access
  • Auto-refresh every 30 seconds with toast notifications

Technical Implementation

  • Python Flask backend with vanilla JS frontend styled with Tailwind CSS
  • Supervisord manages both crond and Flask processes
  • Job scripts modified to log execution data to SQLite
  • Custom cron parser (no external dependencies)
  • Security: input validation, rate limiting, XSS prevention via safe DOM APIs (createElement/textContent)
  • Merged with latest main — includes all bug fixes and dependency updates

Files Added/Modified

  • webapp/ — Flask app, models, DB logger, cron parser, templates, JS frontend
  • supervisord.conf — Process manager for crond + Flask
  • Dockerfile — Added python3, py3-flask, py3-supervisor; sorted packages alphabetically
  • entrypoint.sh — DB initialization, job sync, supervisord integration with atomic script generation
  • docker-compose.yml — Port mapping (8080), data volume, environment variables
  • scripts/update-project.sh — New update_webapp_packages() to verify webapp components
  • .github/workflows/update-project.yml — Updated PR template to mention webapp packages

Test Plan

  • docker-compose up — verify dashboard loads at localhost:8080
  • Verify stats bar shows correct job counts
  • Verify health indicator shows green "Healthy" status
  • Click "Run Now" on a job — confirm toast notification and execution logged
  • Click "History" — confirm execution history table renders
  • Click "Logs" on an execution — confirm modal with stdout/stderr tabs
  • Verify auto-refresh updates stats every 30 seconds
  • Test responsive layout on mobile viewport
  • Run ./scripts/update-project.sh --dry-run — verify webapp package checks pass

🤖 Generated with Claude Code

SimplicityGuy and others added 2 commits January 2, 2026 15:30
Add a comprehensive web-based dashboard that provides real-time monitoring
and control of cron jobs. This addresses the need for visibility into job
execution history, status tracking, and manual job triggering without
requiring command-line access to the container.

Key features:
- Job monitoring with real-time status updates
- Execution history with stdout/stderr log viewing
- Manual job triggering via web interface
- Dashboard statistics (total jobs, failures, recent activity)
- SQLite database for persistent execution tracking
- REST API for programmatic access
- Auto-refresh every 30 seconds

Technical implementation:
- Python Flask backend with lightweight vanilla JS frontend
- Supervisord manages both crond and Flask processes
- Job scripts modified to log execution data to SQLite
- Custom cron parser (no external dependencies)
- Security features: input validation, rate limiting, XSS prevention

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Resolve merge conflicts in Dockerfile and entrypoint.sh, rewrite the
web dashboard frontend with Tailwind CSS for a modern UI, and update
the update-project.sh script to verify webapp components.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant