Studywatch

This is a set of scripts.

  • The client script tracks study sessions and syncs them with a CalDAV calendar.
  • The server script reads from said CalDAV calendar and serves a nice-looking web UI and API endpoint.

Usage

Client

  1. Create an .env following the .env.example layout and fill in all fields
  2. Run as ./studywatch-cli <subject-name> (available subjects are also defined in .env)
  3. Previous, failed syncs are stored in ./backlog.csv and will be reattempted first
  4. The new session will start and display a live timer. To stop it, send SIGINT (Ctrl+C)
  5. You will be asked if you want to sync the session (y|n)

Server

The server is written in python using flask. It grabs the calendar events via CalDAV and renders out a nice looking ui.
Heads-up: The entire frontend is vibe-coded. Im not much of a web dev. Backend is written by me but not the greatest code quality. I just needed it to work, and that it does great!

S
Description
Client and server scripts to track study sessions, store them in a CalDAV calendar and render out a nice web dashboard.
Readme
461 KiB
Languages
Python 60.7%
CSS 17.1%
JavaScript 12.9%
HTML 8.1%
Dockerfile 1.2%