Skip to content

ponbac/toki2

Repository files navigation

Toki2 🕒

A Milltime and Azure DevOps integration platform built with Rust and React. Initially built because I wanted to try out Rust (this is an excuse for the code quality).

Documentation

Overview

Toki2 helps you manage your time entries, track pull requests, and stay notified about important updates in Azure DevOps.

Features

  • ⌨️ Keyboard friendly

    • CMD+K menu to quickly navigate to different sections, start timer, etc.
  • 🔄 Azure DevOps Integration

    • Pull Request tracking: see all your PRs across different projects and organizations in one place.
    • Work item integration: generate Milltime notes based on connected work items.
  • ⏱️ Time Tracking

    • Clean and simple timer feature
    • Instant sync with Milltime, no more syncing at the end of the week
    • Statistics showing how you've spent your time
  • 🔔 Real-time Notifications

    • Web Push notifications (you don't have to have the app open to get notified and can even get notified on your phone)
    • App notifications (can also see all notifications directly in the app)
    • Can configure which notifications you want to receive, and where you want to receive them
    • Ability to track entire repositories, or individual PRs
    • Notifications for closed PRs, new comments, replies, etc.

Screenshots

🏠 Home Dashboard

Home Dashboard

⏱️ Time Tracking

Timer Milltime Integration

🔄 Pull Requests

PR Details

🔔 Notifications

In-app Notifications

Notifications Popover

Settings

Windows Notifications

Windows Notifications

Project Structure

The project is organized into several key components:

Backend Services

  • toki-api/: The main backend service, handles authentication, data persistence, business logic, and communication with Azure DevOps and Milltime.
  • az-devops/: Azure DevOps integration crate, custom client with the goal of making it easier to use the Azure DevOps API.
  • milltime/: Milltime integration crate, created by reverse engineering the Milltime web app (no API exists as of yet).

Frontend Application

Development

Pull production DB into local Postgres

This repository provides a one-command snapshot pull from Fly production into your local database:

just db-prod-pull

Useful flags:

just db-prod-pull --yes
just db-prod-pull --yes --keep-dump
just db-prod-pull --fly-app toki2 --local-db toki
just db-prod-pull --fly-db-app toki-pg --proxy-port 15432

Requirements:

  • flyctl (authenticated with fly auth login)
  • pg_dump, pg_restore, psql
  • local PostgreSQL running and reachable (defaults: localhost:5433, db toki)

If production host is a Fly private address (*.flycast), the script automatically starts a temporary flyctl proxy tunnel.

Safety notes:

  • The command refuses to restore unless local host is localhost, 127.0.0.1, or ::1.
  • By default it prompts before dropping/recreating the local database.
  • The restored data is raw production data; no sanitization/redaction is performed.

About

Time tracking application with Milltime and Azure DevOps integrations. Written in Rust and TS.

Resources

Stars

Watchers

Forks

Contributors