mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-04 18:51:53 -06:00
✨ 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.
57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
cd /app
|
|
export FLASK_APP=app
|
|
|
|
echo "=== Starting TimeTracker ==="
|
|
|
|
echo "Waiting for database to be ready..."
|
|
# Wait for Postgres to be ready
|
|
python - <<"PY"
|
|
import os
|
|
import time
|
|
import sys
|
|
from sqlalchemy import create_engine, text
|
|
from sqlalchemy.exc import OperationalError
|
|
|
|
url = os.getenv("DATABASE_URL", "")
|
|
if url.startswith("postgresql"):
|
|
for attempt in range(30):
|
|
try:
|
|
engine = create_engine(url, pool_pre_ping=True)
|
|
with engine.connect() as conn:
|
|
conn.execute(text("SELECT 1"))
|
|
print("Database connection established successfully")
|
|
break
|
|
except Exception as e:
|
|
print(f"Waiting for database... (attempt {attempt+1}/30): {e}")
|
|
time.sleep(2)
|
|
else:
|
|
print("Database not ready after waiting, exiting...")
|
|
sys.exit(1)
|
|
else:
|
|
print("No PostgreSQL database configured, skipping connection check")
|
|
PY
|
|
|
|
echo "Checking if database is initialized..."
|
|
# Always run the database initialization script to ensure proper schema
|
|
echo "Running database initialization script..."
|
|
python /app/docker/init-database.py
|
|
if [ $? -ne 0 ]; then
|
|
echo "Database initialization failed. Exiting to prevent infinite loop."
|
|
exit 1
|
|
fi
|
|
echo "Database initialization completed successfully"
|
|
|
|
# Also run the simple schema fix to ensure task_id column exists
|
|
echo "Running schema fix script..."
|
|
python /app/docker/fix-schema.py
|
|
if [ $? -ne 0 ]; then
|
|
echo "Schema fix failed. Exiting."
|
|
exit 1
|
|
fi
|
|
echo "Schema fix completed successfully"
|
|
|
|
echo "Starting application..."
|
|
exec gunicorn --bind 0.0.0.0:8080 --worker-class eventlet --workers 1 --timeout 120 "app:create_app()"
|