Skip to content

7373R/embedded_final_proj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chief of Staff Dashboard

An AI-powered personal dashboard designed for embedded systems (like Raspberry Pi with a 3.5" LCD). It serves as a "Chief of Staff," summarizing your daily tasks from Gmail and Google Calendar using Google Gemini AI.

🚀 Features

  • Real-time Notifications: Uses Google Cloud Pub/Sub to trigger instant updates and AI summaries when new emails arrive.
  • AI Task Summarization: Employs Google Gemini (gemini-flash-lite-latest) to analyze emails and calendar events into 3 actionable focus items.
  • Smart Email Pop-ups: Automatically summarizes the content of new incoming emails using AI.
  • Touch Interface: Interactive UI built with Pygame and evdev for hardware touchscreen support.
  • Multi-state UI:
    • Standby (Clock): High-contrast clock and next upcoming event.
    • Dashboard: Overview of unread emails and calendar schedule.
    • AI Summary: Detailed daily brief generated by Gemini.
    • Email Popup: Instant AI summary of the latest notification.
  • Theme Support: Includes both Dark Mode (dashboard.py) and Light Mode (dashboard-white.py).
  • Thai Language Support: Pre-configured with "Prompt" fonts for correct Thai character rendering.

🛠 Hardware Requirements

  • Display: 480x320 LCD (configured for /dev/fb1).
  • Input: Touchscreen device (configured for /dev/input/event0).
  • Platform: Linux-based system (Raspberry Pi recommended).

📦 Prerequisites & Setup

1. Google Cloud Configuration

You need a Google Cloud Project with the following enabled:

  • Gmail API (ReadOnly)
  • Google Calendar API (ReadOnly)
  • Cloud Pub/Sub API
  • Gemini API (via Google AI Studio)

2. Authentication Files

Place the following files in the proj/ directory:

  • credentials.json: OAuth 2.0 Client IDs (Desktop app type).
  • pubsub-key.json: Service Account key for Pub/Sub subscriber access.
  • token.json: Generated after the first successful OAuth flow.
  • .env: Contains your GEMINI_API_KEY.

3. Installation

# Install system dependencies (for Pygame and evdev)
sudo apt-get install python3-dev libsdl2-dev libevdev-dev

# Install Python dependencies
pip install -r requirements.txt

4. Environment Variables

Create a .env file in the proj/ directory:

GEMINI_API_KEY=your_gemini_api_key_here

🖥 Usage

Run the dashboard using the desired theme:

Dark Mode:

python3 dashboard.py

White Mode:

python3 dashboard-white.py

📂 Project Structure

  • dashboard.py: Main application logic (Dark Theme).
  • dashboard-white.py: Alternative Light Theme version.
  • fonts/: Thai-compatible TrueType fonts (Prompt Regular/Medium).
  • credentials.json: Google API credentials (not included in repo).
  • pubsub-key.json: Google Cloud Service Account key (not included in repo).
  • token.json: Stored user authentication token.

⚙️ Configuration

You can adjust hardware mapping in the script headers:

  • FB_DEVICE: Framebuffer path.
  • TOUCH_DEVICE: Input event path.
  • CAL_X/Y_MIN/MAX: Touchscreen calibration values.
  • BTN_BG_COLOR: Custom UI accent colors.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages