Simple Time Tracker - a lightweight, minimal time-tracking app designed for individuals and small teams. It provides multiple intuitive views (see Screenshots) to help users review and analyze their tracked time efficiently:
- The Daily Summary View organizes entries by calendar week and day, ordered by entry start time for a clear chronological overview
- For higher-level insights, the Weekly Summary View aggregates total hours per project and weekday, grouped by calendar week, enabling quick analysis of time allocation
Live Demo available at https://simple-time-tracker-mcep.onrender.com/
It stores projects and time entries in the browser's LocalStorage
Python3.11+Dockeranddocker-compose(optional, for container usage)
Create a Python virtual environment:
On macOS / Linux / WSL / Windows (Git Bash):
# create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate
# install dependencies
pip install -r requirements.txtOn Windows (CMD):
# create and activate virtual environment
python -m venv .venv
.\.venv\Scripts\activate
# install dependencies
pip install -r requirements.txtWith the virtualenv activated and dependencies installed, start the Simple Time Tracker app:
python -m uvicorn app:app --port 8018 --reloadApp will be available at http://localhost:8018
Start the app using Docker Compose without additional Python setup:
docker-compose up --build -dApp will be available at http://localhost:8018
Run docker-compose down to stop the container.
The project uses a simple relational schema (designed for SQLite by default) with two main tables: projects and entries. projects stores project metadata (unique name and creation timestamp) and entries stores time logs that reference projects via project_id, with start/end times, duration in minutes, and an optional comment. Foreign-key constraints and simple indexes are used to keep lookups fast and ensure referential integrity.
Table projects
| Column | Type | Notes |
|---|---|---|
| id | INTEGER | PRIMARY KEY AUTOINCREMENT |
| name | TEXT | UNIQUE |
| created_at_utc | TEXT |
Table entries
| Column | Type | Notes |
|---|---|---|
| id | INTEGER | PRIMARY KEY AUTOINCREMENT |
| project_id | INTEGER | FOREIGN KEY → projects(id) |
| date | TEXT | |
| start_time | TEXT | |
| end_time | TEXT | |
| duration_minutes | INTEGER | |
| comment | TEXT |
Schema Diagram
Daily Summary View groups entries by Calendar Week and Day, ordered by Entry Start Time:
Weekly Summary View displays total hours per Project and Weekday, grouped by Calendar Week: