Jens Luedicke 9a79778ad6 Squashed commit of the following:
commit 1eeea9f83ad9230a5c1f7a75662770eaab0df837
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 21:15:41 2025 +0200

    Disable resuming of old time entries.

commit 3e3ec2f01cb7943622b819a19179388078ae1315
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 20:59:19 2025 +0200

    Refactor db migrations.

commit 15a51a569da36c6b7c9e01ab17b6fdbdee6ad994
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 19:58:04 2025 +0200

    Apply new style for Time Tracking view.

commit 77e5278b303e060d2b03853b06277f8aa567ae68
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 18:06:04 2025 +0200

    Allow direct registrations as a Company.

commit 188a8772757cbef374243d3a5f29e4440ddecabe
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 18:04:45 2025 +0200

    Add email invitation feature.

commit d9ebaa02aa01b518960a20dccdd5a327d82f30c6
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 17:12:32 2025 +0200

    Apply common style for Company, User, Team management pages.

commit 81149caf4d8fc6317e2ab1b4f022b32fc5aa6d22
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 16:44:32 2025 +0200

    Move export functions to own module.

commit 1a26e19338e73f8849c671471dd15cc3c1b1fe82
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 15:51:15 2025 +0200

    Split up models.py.

commit 61f1ccd10f721b0ff4dc1eccf30c7a1ee13f204d
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 12:05:28 2025 +0200

    Move utility function into own modules.

commit 84b341ed35e2c5387819a8b9f9d41eca900ae79f
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 11:44:24 2025 +0200

    Refactor auth functions use.

commit 923e311e3da5b26d85845c2832b73b7b17c48adb
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 11:35:52 2025 +0200

    Refactor route nameing and fix bugs along the way.

commit f0a5c4419c340e62a2615c60b2a9de28204d2995
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 10:34:33 2025 +0200

    Fix URL endpoints in announcement template.

commit b74d74542a1c8dc350749e4788a9464d067a88b5
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 09:25:53 2025 +0200

    Move announcements to own module.

commit 9563a28021ac46c82c04fe4649b394dbf96f92c7
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 09:16:30 2025 +0200

    Combine Company view and edit templates.

commit 6687c373e681d54e4deab6b2582fed5cea9aadf6
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 08:17:42 2025 +0200

    Move Users, Company and System Administration to own modules.

commit 8b7894a2e3eb84bb059f546648b6b9536fea724e
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 07:40:57 2025 +0200

    Move Teams and Projects to own modules.

commit d11bf059d99839ecf1f5d7020b8c8c8a2454c00b
Author: Jens Luedicke <jens@luedicke.me>
Date:   Mon Jul 7 07:09:33 2025 +0200

    Move Tasks and Sprints to own modules.
2025-07-07 21:16:36 +02:00
2025-07-03 12:11:48 +02:00
2025-07-07 21:16:36 +02:00
2025-07-07 21:16:36 +02:00
2025-07-03 22:50:37 +02:00
2025-07-07 21:16:36 +02:00
2025-07-07 21:16:36 +02:00
2025-07-01 11:22:56 +02:00
2025-07-03 22:50:37 +02:00
2025-07-07 21:16:36 +02:00
2025-07-07 21:16:36 +02:00
2025-07-01 12:57:29 +02:00
2025-07-03 22:50:37 +02:00
2025-06-27 15:14:57 +02:00
2025-07-03 12:04:03 +02:00
2025-07-07 21:16:36 +02:00
2025-07-03 22:50:37 +02:00

TimeTrack

TimeTrack is a comprehensive web-based time tracking application built with Flask that provides enterprise-level time management capabilities for teams and organizations. The application features role-based access control, project management, team collaboration, and secure authentication.

Features

Core Time Tracking

  • Real-time Time Tracking: Clock in/out with live timer functionality
  • Project Time Logging: Track time spent on specific projects with project codes
  • Break Management: Configurable mandatory and additional break tracking
  • Time Entry Management: Edit, delete, and view time entries with complete history
  • Automatic Calculations: Duration calculations for work hours and breaks

User Management & Security

  • Two-Factor Authentication (2FA): TOTP-based authentication with QR codes
  • Role-Based Access Control: Admin, Supervisor, Team Leader, and Team Member roles
  • User Administration: Create, edit, block/unblock users with verification system
  • Profile Management: Update email, password, and personal settings

Team & Project Management

  • Team Management: Create teams, assign members, and track team hours
  • Project Management: Create projects with codes, assign to teams, set active/inactive status
  • Team Hours Tracking: View team member working hours with date filtering
  • Project Assignment: Flexible project-team assignments and access control

Export & Reporting

  • Multiple Export Formats: CSV and Excel export capabilities
  • Individual Time Export: Personal time entries with date range selection
  • Team Hours Export: Export team member hours with filtering options
  • Quick Export Options: Today, week, month, or all-time data exports

Administrative Features

  • Admin Dashboard: System overview with user, team, and activity statistics
  • System Settings: Configure registration settings and global preferences
  • User Administration: Complete user lifecycle management
  • Team & Project Administration: Full CRUD operations for teams and projects

Tech Stack

  • Backend: Flask 2.0.1 with SQLAlchemy ORM
  • Database: SQLite with comprehensive relational schema
  • Authentication: Flask session management with 2FA support
  • Frontend: Responsive HTML, CSS, JavaScript with real-time updates
  • Security: TOTP-based two-factor authentication, role-based access control
  • Export: CSV and Excel export capabilities
  • Dependencies: See Pipfile for complete dependency list

Installation

Prerequisites

  • Python 3.12
  • pip or pipenv
# Clone the repository
git clone https://github.com/nullmedium/TimeTrack.git
cd TimeTrack

# Install dependencies using pipenv
pipenv install

# Activate the virtual environment
pipenv shell

# Run the application (migrations run automatically on first startup)
python app.py

First-Time Setup

  1. Start the Application: The database is automatically created and initialized on first startup
  2. Admin Account: An initial admin user is created automatically with username admin and password admin
  3. Change Default Password: IMPORTANT: Change the default admin password immediately after first login
  4. System Configuration: Access Admin Dashboard to configure system settings
  5. Team Setup: Create teams and assign team leaders
  6. Project Creation: Set up projects with codes and team assignments
  7. User Management: Add users and assign appropriate roles

Database Migrations

Automatic Migration System: All database migrations now run automatically when the application starts. No manual migration scripts need to be run.

The integrated migration system handles:

  • Database schema creation for new installations
  • Automatic schema updates for existing databases
  • User table enhancements (verification, roles, teams, 2FA)
  • Project and team management table creation
  • Sample data initialization
  • Data integrity maintenance during upgrades

Configuration

The application can be configured through:

  • Admin Dashboard: System-wide settings and user management
  • User Profiles: Individual work hour and break preferences
  • Environment Variables: Database and Flask configuration

Usage

For Regular Users

  1. Register/Login: Create account or log in with existing credentials
  2. Setup 2FA: Optionally enable two-factor authentication for enhanced security
  3. Clock In/Out: Use the timer interface to track work hours
  4. Manage Breaks: Record and track break periods
  5. View History: Access complete time entry history with filtering
  6. Export Data: Download time entries in CSV or Excel format

For Team Leaders

  1. Manage Team Members: View team member status and activity
  2. Track Team Hours: Monitor team working hours with date filtering
  3. Export Team Data: Generate team hour reports

For Supervisors/Admins

  1. User Management: Create, edit, and manage user accounts
  2. Team Administration: Create teams and assign members
  3. Project Management: Set up projects and assign to teams
  4. System Configuration: Configure global settings and permissions
  5. Analytics: View system-wide statistics and activity

Security Features

  • Two-Factor Authentication: TOTP-based 2FA with QR code setup
  • Role-Based Access Control: Four distinct user roles with appropriate permissions
  • Session Management: Secure login/logout with "remember me" functionality
  • Data Validation: Comprehensive input validation and error handling
  • Account Verification: Email verification system for new accounts

API Endpoints

The application provides various endpoints for different user roles:

  • /admin/*: Administrative functions (Admin only)
  • /supervisor/*: Supervisor functions (Supervisor+ roles)
  • /team/*: Team management (Team Leader+ roles)
  • /export/*: Data export functionality
  • /auth/*: Authentication and profile management

File Structure

  • app.py: Main Flask application with integrated migration system
  • models.py: Database models and relationships
  • templates/: HTML templates for all pages
  • static/: CSS and JavaScript files
  • migrate_*.py: Legacy migration scripts (no longer needed)

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is licensed under the MIT License.

Description
No description provided
Readme MIT 2.3 MiB
Languages
HTML 52.9%
Python 27.2%
CSS 12.4%
JavaScript 7.1%
Shell 0.3%