Skip to content

jnfire/time-balance

Repository files navigation

time-balance 🕒

A professional, global terminal tool to manage multiple projects, track workdays, and manage your hour balance.

Leer en español 🇪🇸

License: GPL v3 Python 3.8+

Description

time-balance is a global console application designed for productivity. It no longer depends on local files; all your projects and records are stored in a centralized SQLite database. It features a domain-driven modular architecture, a decoupled UI layer, and a robust localization system.


Installation

From Distribution Files (Release)

If you have downloaded the release files (e.g., time_balance-0.5.0-py3-none-any.whl), you can install it directly:

# Install the Wheel file
pip install time_balance-0.5.0-py3-none-any.whl

From Source

To install the application from the source code:

# Clone and enter directory
git clone <repo-url>
cd time-balance

# Install globally
pip install .

For Developers

If you want to contribute, we recommend using the direct entry point:

# Run without installing
./main.py --version

Usage

1. Control Center (Interactive Menu)

Simply run the command from any folder to open the manager:

time-balance

2. Intuitive Navigation

The interface uses a standardized navigation system:

  • Numbers (1-5) to select main actions.
  • Letters (V, N, P) for navigation: V to go back, N/P to navigate history pages.

3. Quick Commands

Check your status without entering the menu:

# Show balance for the active project
time-balance --status

# List last 10 records for the active project
time-balance --list 10

Main Features

  • Domain-Driven Architecture: Clean separation between CLI, Database, and UI logic.
  • UI Abstraction: Decoupled from visual libraries for maximum flexibility.
  • JSON-Based Localization: Easily add new languages via external JSON files.
  • High-Performance Caching: Atomic balance updates with automatic NULL handling for imported data.
  • SQLite Backend: Robust persistence following XDG standards.
  • Multi-project Management: Manage different work contexts independently with project-isolated operations.
  • Delete Records: Safely delete daily time records with confirmation and immediate balance recalculation.
  • Balance Recalculation: Force a full rebuild of the balance cache with a single command to fix any inconsistencies.
  • Data Integrity: Foreign key constraints and atomic transactions ensure referential integrity.

Development and Contributions

If you want to contribute or understand the internals:

License

This project is Open Source under the GPL-3.0 license.

About

A terminal application for time and attendance tracking to facilitate the monitoring of employee work hours

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages