Files
TimeTracker/docker
Dries Peeters 1865a5a1b8 feat: Enhance task management with modern UI/UX design and responsive layout
 Major UI/UX Improvements:
- Redesign task management interface with modern card-based layout
- Implement responsive design optimized for all devices
- Add hover effects, smooth transitions, and modern animations
- Integrate Bootstrap 5 with custom CSS variables and styling

🎨 Enhanced Task Templates:
- tasks/list.html: Modern header, quick stats, advanced filtering, card grid
- tasks/view.html: Comprehensive task overview with timeline and quick actions
- tasks/create.html: Enhanced form with helpful sidebar and validation
- tasks/edit.html: Improved editing interface with current task context
- tasks/my_tasks.html: Personalized task view with task type indicators

🔧 Technical Improvements:
- Fix CSRF token errors by removing Flask-WTF dependencies
- Convert templates to use regular HTML forms matching route implementation
- Ensure proper form validation and user experience
- Maintain all existing functionality while improving interface

📱 Mobile-First Design:
- Responsive grid layouts that stack properly on mobile
- Touch-friendly buttons and interactions
- Optimized spacing and typography for all screen sizes
- Consistent design system across all task views

📊 Enhanced Features:
- Quick stats overview showing task distribution by status
- Advanced filtering with search, status, priority, project, and assignee
- Priority-based color coding and visual indicators
- Task timeline visualization for better project tracking
- Improved form layouts with icons and helpful guidance

📚 Documentation Updates:
- Update README.md with comprehensive task management feature descriptions
- Add new screenshot section for enhanced task interface
- Document modern UI/UX improvements and technical features
- Include usage examples and workflow descriptions

�� User Experience:
- Clean, professional appearance suitable for business use
- Intuitive navigation and clear visual hierarchy
- Consistent styling with existing application design
- Improved accessibility and usability across all devices

This commit represents a significant enhancement to the task management system,
transforming it from a basic interface to a modern, professional-grade
solution that matches contemporary web application standards.
2025-08-29 14:14:08 +02:00
..
2025-08-16 21:49:43 +02:00
2025-08-27 14:37:18 +02:00
2025-08-27 14:37:18 +02:00

Docker Database Initialization

This directory contains scripts and configuration for the TimeTracker Docker setup with automatic database initialization.

Overview

The Docker setup now includes automatic database connection checking and initialization:

  1. Database Connection Check: The app waits for the PostgreSQL database to be ready
  2. Initialization Check: Verifies if the database has the required tables
  3. Automatic Initialization: If needed, runs the Python initialization script to create tables and default data

Files

start.sh

Main startup script that:

  • Waits for database connection
  • Checks if database is initialized
  • Runs initialization if needed
  • Starts the Flask application

init-database.py

Python script that:

  • Connects to the database
  • Creates all required tables using SQLAlchemy models
  • Creates default admin user, settings, and project
  • Handles errors gracefully

test-db.py

Utility script to test database connectivity and show initialization status.

init.sql and init-db.sh

Legacy initialization scripts (kept for reference, not used by default).

How It Works

  1. Docker Compose starts the PostgreSQL container
  2. Health Check ensures PostgreSQL is ready
  3. App Container waits for database to be healthy
  4. Startup Script checks database connection
  5. Initialization Check verifies required tables exist
  6. Python Script creates tables and default data if needed
  7. Flask App starts normally

Environment Variables

The following environment variables are used:

  • DATABASE_URL: PostgreSQL connection string
  • ADMIN_USERNAMES: Comma-separated list of admin usernames
  • TZ: Timezone setting
  • CURRENCY: Currency setting
  • ROUNDING_MINUTES: Time rounding setting

Testing

To test the database setup manually:

# Test database connection and status
docker exec timetracker-app python /app/docker/test-db.py

# Manually initialize database (if needed)
docker exec timetracker-app python /app/docker/init-database.py

Troubleshooting

Database Connection Issues

  • Check if PostgreSQL container is running: docker ps
  • Check PostgreSQL logs: docker logs timetracker-db
  • Verify environment variables are set correctly

Initialization Issues

  • Check app container logs: docker logs timetracker-app
  • Verify database permissions
  • Check if tables exist: docker exec timetracker-db psql -U timetracker -d timetracker -c "\dt"

Health Check Failures

  • Ensure the /_health endpoint is accessible
  • Check if the app is binding to the correct port
  • Verify network connectivity between containers