Home
Jarvis Gesture Control Arduino SaaS
About Devlog Contact
← All projects

Project 01  /  AI Systems

Jarvis

A personal AI operating system that runs on real infrastructure and does real work — not a demo, not a prototype, a system I actually use.

Active build GCPPythonFastAPIPostgreSQL
Overview

What it does

Jarvis is my personal AI assistant running on hybrid cloud and local infrastructure. The goal: zero manual effort for detecting, scheduling, and completing tasks.

It scrapes Google Classroom automatically, detects new assignments via OCR from my iPhone, generates draft responses using an LLM, and schedules work based on my energy levels throughout the day.

Everything runs on GCP Cloud Run with a PostgreSQL database on Cloud SQL, triggered by Cloud Scheduler every minute.

Core features

  • Google Classroom scraper via Playwright
  • iPhone Shortcut OCR trigger for new assignments
  • LLM draft generation stored in Postgres
  • Energy-aware task scheduling (peaks 4:30–7pm)
  • Google Calendar automation with undo
  • Daily brief generation at 6am
  • Cloud Scheduler every-minute execution loop
  • FastAPI backend on Cloud Run
Gallery
Architecture diagram
Dashboard screenshot
iPhone shortcut
GCP console
Database schema
Tech Stack
FastAPI
Backend
Cloud Run
Deployment
PostgreSQL
Database
Cloud Scheduler
Triggers
Playwright
Scraper
Secret Manager
Credentials
Documentation

Current status

FastAPI backend deployed on Cloud Run. Cloud Scheduler fires every minute hitting /run-checks/execute. Cloud SQL Postgres connected with Secret Manager credentials.

Working on: jarvis-sweep Cloud Run Job to connect the scheduler to real execution — Playwright scraper, LLM draft generation, and frontend endpoints.

Estimated MVP gap: 10–18 hours of focused build time.

Build log

  • Cloud Run + Cloud SQL deployed and connected
  • run_checks table and scheduler working
  • Personal Gmail OAuth working locally
  • jarvis-sweep Cloud Run Job — in progress
  • Playwright Classroom scraper — in progress
  • LLM draft endpoint — not started
  • iPhone Shortcut OCR — not started
  • Frontend dashboard — not started
View on GitHub Get in touch