Skip to content

Repository files navigation

Waeky Waeky

WAKEY-WAKEY icon WAKEY-WAKEY - Desktop Alertness Companion

WAKEY-WAKEY Hero

⚠️ Disclaimer

WAKEY-WAKEY is under active development. It's mid-migration from a Python backend to an in-app TypeScript detection pipeline β€” expect rough edges, and treat anything below as a snapshot rather than a stable release.


πŸ“Œ Overview

WAKEY-WAKEY is a desktop companion designed to keep you awake and alert. It uses your webcam and real-time facial-landmark analysis to detect drowsiness (eye closure, yawning), triggering customizable audio alerts when it does.

Perfect for students, professionals, night-shift workers, or anyone needing focus during long sessions.


πŸš€ Features

  • Real-Time Drowsiness Detection: Tracks eye closure and yawns via facial landmarks (Eye Aspect Ratio / Mouth Aspect Ratio)
  • Smart Alert System: Rotating audio notifications (sound1–sound5.mp3) triggered when drowsiness is detected
  • Non-Intrusive: Runs quietly in the background with a system tray presence
  • Local Processing & Privacy: Detection now runs entirely in-app β€” no external backend, no data leaves your device
  • Scientific Detection: EAR/MAR thresholds over MediaPipe FaceLandmarker output

πŸ—οΈ Architecture β€” mid-migration

The app originally shipped with a local Flask/Python backend for the computer-vision inference. That backend (app.py, requirements.txt, autoInstall.bat, installRequirements.bat) has been removed in favor of running detection directly in the frontend via @mediapipe/tasks-vision (src/lib/detector.ts), using MediaPipe's FaceLandmarker (GPU-delegated, WASM runtime) to compute eye/mouth aspect ratios frame-by-frame β€” no Python, no separate server process.

This migration is still being wrapped up:

  • detector.ts is written and wired, but hasn't been fully committed/verified end-to-end
  • Home.jsx / Settings.jsx have in-flight edits adapting the UI to the new in-app pipeline
  • The old .env variables (VITE_API_URL, FLASK_APP) are obsolete now that there's no Flask backend to point at

πŸ› οΈ Tech Stack

Detection

MediaPipe MediaPipe Tasks Vision – in-app face-landmark detection (replaces the old Python/Flask CV service)

Frontend

React React – UI library TypeScript TypeScript – detection/typing layer Vite Vite – frontend build tool TailwindCSS Tailwind CSS – utility-first styling Motion Motion – smooth UI animations

Platform

Tauri Tauri – native desktop app packaging, tray icon, and shell/fs plugins


πŸ“ Project Structure

src/
β”œβ”€β”€ lib/
β”‚   └── detector.ts        # In-app MediaPipe FaceLandmarker-based drowsiness detection
β”œβ”€β”€ pages/                 # Home, Settings
β”œβ”€β”€ components/            # Tray, Lamp, Video UI components
β”œβ”€β”€ assets/sounds/          # Alert sounds (sound1..sound5.mp3)
public/
src-tauri/                 # Tauri native app configuration (tray, fs, shell)
vite.config.js
tailwind.config.js

βš™οΈ Installation

git clone https://github.com/mohaneddz/Waeky-Waeky
cd Waeky-Waeky
npm install

No Python setup is required anymore β€” the old Flask backend steps have been removed.


πŸš€ Development

npm run dev

Or run the full desktop shell:

npm run tauri dev

πŸ“¦ Production Build

npm run build
npm run tauri build

🀝 Contributing

  1. Fork the repo
  2. Create a branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m "Add feature")
  4. Push (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

MIT License

Licensed under MIT License – see the LICENSE file.

About

π–π€πŠπ„π˜-π–π€πŠπ„π˜ is a desktop alertness companion built with Tauri, React, TypeScript, and MediaPipe that detects drowsiness via webcam and triggers audio alerts.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages