Skip to content

This is a custom dashboard that Im writing for a kiosk style dashboard to be displayed on a wall mounted touchscreen.

Notifications You must be signed in to change notification settings

ianmeinert/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Family Dashboard

A modern, modular dashboard for home and family organization built with SvelteKit and FastAPI.

License Python Node.js SvelteKit

πŸš€ Quick Start

# Clone the repository
git clone <your-repo-url>
cd dashboard

# Set up environment variables
cp templates/env_template.txt backend/.env
# Edit backend/.env with your API keys and settings

# Set up credentials (see Credentials section below)
cp templates/credentials_template.json backend/data/credentials.json
# Edit backend/data/credentials.json with your API keys

# Start the backend
cd backend
uv venv
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # Linux/macOS
uv pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

# In a new terminal, start the frontend
cd frontend
npm install
npm run dev

Visit http://localhost:5173 to see your dashboard!

πŸ“š Need detailed setup instructions? Check out our Getting Started Guide

πŸ“‹ Features

πŸ—“οΈ Calendar Integration

  • Google Calendar Sync: Real-time family events and appointments
  • OAuth2 Authentication: Secure, token-based access
  • Event Display: Clean, readable event cards with details

🌀️ Weather Widget

  • Current Conditions: Real-time weather data
  • 5-Day Forecast: Extended weather predictions
  • Location Management: Geolocation, city/state, or zip code lookup
  • Persistent Settings: Remembers your preferred location

πŸ›’ Grocery List

  • Smart Management: Add, edit, delete, and check off items
  • Categories & Priorities: Organize with categories and priority levels
  • Database Storage: Robust SQLite backend with async SQLAlchemy
  • Auto-Migration: Seamless upgrade from legacy JSON storage

πŸ“Š System Monitoring

  • Health Checks: Real-time system status via /health endpoint
  • Prometheus Metrics: Comprehensive monitoring via /metrics endpoint
  • Performance Metrics: Dashboard and API monitoring with custom business metrics
  • Error Tracking: Comprehensive error handling and logging
  • Rate Limiting: Built-in rate limiting with metrics tracking

πŸ—οΈ Architecture

dashboard/
β”œβ”€β”€ frontend/          # SvelteKit application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ lib/components/  # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ stores/          # State management
β”‚   β”‚   └── routes/          # Page routes
β”‚   └── package.json
β”œβ”€β”€ backend/           # FastAPI application
β”‚   β”œβ”€β”€ api/           # API endpoints
β”‚   β”œβ”€β”€ models.py      # Database models
β”‚   β”œβ”€β”€ schemas/       # Pydantic schemas
β”‚   └── requirements.txt
β”œβ”€β”€ docs/              # πŸ“š Comprehensive documentation
β”‚   β”œβ”€β”€ getting-started.md
β”‚   β”œβ”€β”€ configuration.md
β”‚   β”œβ”€β”€ troubleshooting.md
β”‚   └── features/
└── data/              # Shared data storage

Technology Stack

Frontend:

Backend:

Integrations:

πŸ”§ Setup

Prerequisites

  • Python 3.8+ with uv (recommended) or pip
  • Node.js 18+ with npm, yarn, or pnpm
  • Google Cloud Platform account for Calendar API
  • OpenWeatherMap account for weather data

Credentials Setup

  1. Google Calendar Setup:

    • Create a project in Google Cloud Console
    • Enable Google Calendar API
    • Create OAuth2 credentials (Desktop application)
    • Download credentials file
  2. OpenWeatherMap Setup:

  3. Configure Credentials:

    cp templates/credentials_template.json backend/data/credentials.json
    # Edit backend/data/credentials.json with your actual credentials

Installation

Detailed setup instructions are available in our comprehensive documentation:

🎯 Usage

Dashboard Overview

The dashboard is organized into four main quadrants:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  🌀️ Weather    β”‚  πŸ›’ Grocery   β”‚
│────────────────┼────────────────│
β”‚ Current Weatherβ”‚ Shopping List  β”‚
β”‚ & Forecast     β”‚ & Household    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ“… Calendar   β”‚  🧹 Chores    β”‚
│────────────────┼────────────────│
β”‚ Family Events  β”‚ Household Task β”‚
β”‚ & Appointments β”‚ & Reminders    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Interactions

  • Click any quadrant to expand for detailed view
  • Weather widget supports location search and geolocation
  • Grocery list allows adding, editing, and organizing items
  • Calendar shows upcoming events with details

Mobile & Touch Support

The dashboard is optimized for:

  • Touchscreen kiosks
  • Wall-mounted tablets
  • Desktop and mobile browsers
  • Large displays and projectors

πŸ”’ Security

  • OAuth2 Authentication for Google Calendar
  • Environment Variables for sensitive configuration
  • Input Validation with Pydantic schemas
  • CORS Protection for API endpoints
  • Secure Credential Storage (never committed to git)

πŸš€ Deployment

Development

# Backend
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

# Frontend
cd frontend
npm run dev

Production

See deployment guides in the component READMEs:

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow Conventional Commits for commit messages
  • Write tests for new features
  • Update documentation for API changes
  • Follow the established code style and patterns

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


Made with ❀️ for families everywhere

πŸ“š Ready to dive deeper? Start with our Getting Started Guide or explore the Documentation Hub.

About

This is a custom dashboard that Im writing for a kiosk style dashboard to be displayed on a wall mounted touchscreen.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published