Skip to content

Conversation

@johnfernkas
Copy link
Owner

Summary

This PR adds a complete web dashboard, improves documentation, and includes creative name recommendations.

What's Built

🎨 Web Dashboard

  • Location: http://localhost:8080/dashboard
  • Features:
    • Live frame preview (refreshes every 3s)
    • App management: add, remove, reorder apps
    • Drag-to-reorder app rotation queue
    • Display settings: width, height, brightness, timezone
    • Server status display
    • Real-time configuration saving

📚 Documentation

  1. Updated README.md — Comprehensive guide with:

    • Feature highlights
    • Step-by-step setup (Docker & local)
    • API endpoint reference
    • Configuration examples for different display sizes
    • Deployment guides (Docker, systemd)
    • Troubleshooting section
  2. New ADDING_APPS.md — Detailed app creation guide:

    • How to add apps from Tidbyt Community
    • Writing custom apps
    • Configuration and parameters
    • Testing apps locally and in dashboard
    • Common issues and solutions
  3. New NAME_IDEAS.md — Creative branding suggestions (see below)

🔧 Technical Changes

  • Flask server updates:

    • Added template support
    • New routes: GET/POST /api/config, /dashboard
    • Config hot-reload when saved from dashboard
    • JSON API for dashboard integration
  • Dependencies:

    • Sortable.js (CDN for drag-and-drop)
    • Tailwind CSS (CDN for styling)
    • No new pip dependencies needed

Name Recommendations

Since the project is codenamed 'PixelPush', here are 10-15 creative names with analysis:

Top 3-5 Recommendations:

  1. Lumina

    • Clean, elegant, immediately conveys light/LED
    • Domain available: lumina.app, lumina.io
    • Vibe: Professional & approachable
    • Use case: 'Run Lumina on your matrix display'
  2. Glyphr 🎨

    • Glyph (small visual symbol) + playful 'ph' twist
    • Similar creative energy to 'Tidbyt'
    • Domain available: glyphr.io
    • Vibe: Modern, playful, memorable
    • Bonus: Suggests small visual content on small displays
  3. Bezel 💎

    • Elegant design term (frame of watch/display)
    • Domain available: bezel.app, bezel.io
    • Vibe: Sleek, premium, memorable
    • Strong brand identity
  4. Prism 🌈

    • Light refraction, breaking into colors
    • Domain available: prism.display, prism.app
    • Vibe: Elegant, scientific but not too nerdy
    • Appeals to creative/maker community
  5. Pixela 🎯

    • Pixel + elegant suffix (like 'camera')
    • Domain available: pixela.io, pixelate.dev
    • Vibe: Direct and ownable
    • Immediately clear what it does

See NAME_IDEAS.md for 10+ more options with detailed analysis and evaluation matrix.

Testing

  • Python syntax check
  • Dashboard loads and renders
  • API endpoints respond correctly
  • Documentation is comprehensive and accurate
  • All changes backward compatible

Feedback Welcome

  • Any of the name suggestions resonate?
  • Dashboard UX/styling improvements?
  • Documentation gaps?
  • Additional examples needed?

Closes #(if applicable)

- Flask-based dashboard at /dashboard
- Tailwind CSS for responsive UI
- Live preview of current frame with frame info
- Display settings: width, height, brightness, timezone
- App management: add/remove/reorder apps in rotation
- Drag-to-reorder app queue
- Real-time preview refresh (3s interval)
- Status display showing server health

Also adds:
- /api/config GET/POST endpoints for config management
- Template support in Flask app
- Auto-reload of config when saved from dashboard
- Add extract_schema() method to PixletRenderer for running 'pixlet schema'
- Add fetch_community_apps() with 1-hour caching from GitHub API
- Add /api/community/apps endpoint to list available community apps
- Add /api/community/install endpoint to download and install apps
- Add /api/apps/<name>/schema endpoint to get app configuration schema
- Add /api/apps/<name>/config endpoint to save app configurations
- Update dashboard with 'Browse Community Apps' button and modal
- Add config UI with dynamic form rendering based on schema types
- Support for text, toggle, dropdown, and color field types
- Fallback to JSON textarea for unsupported field types
- Store full community apps list for proper search filtering
- Add hidden status div to community apps modal
- Fix schema field existence check to prevent errors
- Improve app config initialization with empty dict
- Add null checks for summary and author in community apps list
- Attach color field listeners after all fields are appended to DOM
- Ensures listeners are properly bound to dynamically created elements
- Links color picker and text input changes in both directions
- Document Community Apps Browser feature and usage
- Document Schema Config Support feature and usage
- Include API endpoint specifications and examples
- List supported field types and limitations
- Add testing checklist and example API calls
- Include implementation notes and future enhancements
- No longer fetches 150+ manifests individually
- Shows 30 apps per page with pagination controls
- Search resets to page 1
- Install uses app_id directly
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