54 Commits

Author SHA1 Message Date
Dries Peeters
8a378b7078 feat(clients,license,db): add client management, enhanced DB init, and tests
- Clients: add model, routes, and templates
  - app/models/client.py
  - app/routes/clients.py
  - templates/clients/{create,edit,list,view}.html
  - docs/CLIENT_MANAGEMENT_README.md
- Database: add enhanced init/verify scripts, migrations, and docs
  - docker/{init-database-enhanced.py,start-enhanced.py,verify-database.py}
  - docs/ENHANCED_DATABASE_STARTUP.md
  - migrations/{add_analytics_column.sql,add_analytics_setting.py,migrate_to_client_model.py}
- Scripts: add version manager and docker network test helpers
  - scripts/version-manager.{bat,ps1,py,sh}
  - scripts/test-docker-network.{bat,sh}
  - docs/VERSION_MANAGEMENT.md
- UI: tweak base stylesheet
  - app/static/base.css
- Tests: add client system test
  - test_client_system.py
v1.2.0
2025-09-01 11:34:45 +02:00
Dries Peeters
e0d235f37f Updated datbase init. V1.1.1 2025-08-30 11:32:03 +02:00
Dries Peeters
02fe1e227a Update README.md 2025-08-30 11:22:22 +02:00
Dries Peeters
4640a9e6a3 Merge pull request #14 from DRYTRIX/develop
🚀 Release V1.1.0: Enhanced Mobile Experience & Task Management
V1.1.0
2025-08-30 10:14:28 +02:00
Dries Peeters
e39e9e0824 Merge pull request #13 from DRYTRIX/feature-InvoiceGeneration
feat: enhance web interface layout and fix logo import circular depen…
2025-08-30 10:09:38 +02:00
Dries Peeters
d230a41e8a feat: enhance web interface layout and fix logo import circular dependency
- Improve web interface layout for better user-friendliness and mobile responsiveness
  * Update CSS variables for consistent spacing and component sizing
  * Enhance card layouts with improved padding, borders, and shadows
  * Optimize button and form element dimensions for better touch targets
  * Add hover effects and animations for improved user interaction
  * Implement responsive grid system with mobile-first approach

- Refactor mobile JavaScript to prevent duplicate initialization
  * Consolidate mobile enhancements into dedicated utility classes
  * Add initialization guards to prevent double loading
  * Implement MobileUtils and MobileNavigation classes
  * Remove duplicate event listeners and mobile enhancements

- Fix circular import issue in logo handling
  * Replace problematic 'from app import app' with Flask's current_app
  * Add error handling for cases where current_app is unavailable
  * Improve logo path resolution with fallback mechanisms
  * Fix settings model to use proper Flask context

- Clean up template code and remove duplication
  * Remove duplicate mobile enhancements from base template
  * Clean up dashboard template JavaScript
  * Centralize all mobile functionality in mobile.js
  * Add proper error handling and debugging

- Update CSS variables and spacing system
  * Introduce --section-spacing and --card-spacing variables
  * Add mobile-specific spacing variables
  * Improve border-radius and shadow consistency
  * Enhance typography and visual hierarchy

This commit resolves the double loading issue and logo import errors while
significantly improving the overall user experience and mobile responsiveness
of the web interface.
2025-08-30 10:09:06 +02:00
Dries Peeters
84e19ca205 Merge pull request #11 from DRYTRIX/feature-TaskManagement
Feature task management
2025-08-29 14:15:44 +02:00
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
Dries Peeters
98728691ef feat: Add comprehensive Task Management system with automatic database migration
- Add Task model with full CRUD operations, status tracking, and priority management
- Integrate tasks with existing projects and time entries via foreign key relationships
- Create new Flask routes (/tasks) with admin and user role-based access control
- Implement task status transitions (pending → in_progress → completed → cancelled)
- Add task filtering by status, priority, assignee, and project
- Create responsive Jinja2 templates for task listing, creation, editing, and viewing
- Integrate task selection in timer and manual time entry forms
- Add task management to project dashboards and navigation menus
- Implement automatic database migration system for seamless deployment
- Create migration scripts to add missing tables and columns
- Update startup script to detect and run migrations automatically
- Add comprehensive error handling and validation
- Include full documentation (TASK_MANAGEMENT_README.md)
- Update project structure and main README with new feature details

Database Changes:
- New 'tasks' table with indexes for performance
- Add 'task_id' column to 'time_entries' table
- Automatic migration detection and execution

Technical Implementation:
- SQLAlchemy relationships with proper backrefs and cascading
- Flask-Login integration for role-based access
- Bootstrap 5 responsive UI components
- Font Awesome icons for visual enhancement
- Comprehensive test coverage and error handling

This feature enables users to break down projects into manageable tasks,
track progress, assign work, and maintain better project organization.
2025-08-29 11:48:47 +02:00
Dries Peeters
4ae3ef4e33 Merge pull request #10 from DRYTRIX/feature-VisualAnalytics
fix: resolve empty analytics charts by correcting template block name
2025-08-29 10:10:05 +02:00
Dries Peeters
ba884e516a fix: resolve empty analytics charts by correcting template block name
- Change analytics dashboard template from `{% block scripts %}` to `{% block extra_js %}`
- Fixes block name mismatch between base.html and analytics dashboard template
- Resolves issue where AnalyticsDashboard JavaScript class was not loading
- Charts now properly initialize and display data from API endpoints
- Maintains all existing functionality while fixing the rendering issue
2025-08-29 10:09:37 +02:00
Dries Peeters
a23f84cc64 Merge pull request #9 from DRYTRIX/feature-MobileFriendly
feat: implement comprehensive mobile-friendly web interface
2025-08-29 09:32:02 +02:00
Dries Peeters
abebd88185 feat: implement comprehensive mobile-friendly web interface
- Add mobile-first CSS with responsive breakpoints and touch targets
- Create dedicated mobile.css and mobile.js files for enhanced mobile experience
- Implement card-based table layouts for small screens with data-label attributes
- Add mobile-specific utility classes (mobile-card, touch-target, mobile-stack)
- Enhance navigation with collapsible mobile menu and swipe gestures
- Optimize forms, buttons, and modals for mobile devices
- Add touch feedback and mobile-specific interactions
- Implement responsive grid layouts and mobile typography
- Add mobile meta tags for PWA-like functionality
- Ensure all templates use mobile-friendly classes and responsive design
2025-08-29 09:29:18 +02:00
Dries Peeters
e7fd287126 Merge pull request #8 from DRYTRIX/7-wrong-timezone
feat: comprehensive project cleanup and timezone enhancement
v1.0.5
2025-08-28 14:54:19 +02:00
Dries Peeters
1b3a703c04 feat: comprehensive project cleanup and timezone enhancement
- Remove redundant documentation files (DATABASE_INIT_FIX_*.md, TIMEZONE_FIX_README.md)
- Delete unused Docker files (Dockerfile.test, Dockerfile.combined, docker-compose.yml)
- Remove obsolete deployment scripts (deploy.sh) and unused files (index.html, _config.yml)
- Clean up logs directory (remove 2MB timetracker.log, keep .gitkeep)
- Remove .pytest_cache directory

- Consolidate Docker setup to two main container types:
  * Simple container (recommended for production)
  * Public container (for development/testing)

- Enhance timezone support in admin settings:
  * Add 100+ timezone options organized by region
  * Implement real-time timezone preview with current time display
  * Add timezone offset calculation and display
  * Remove search functionality for cleaner interface
  * Update timezone utility functions for database-driven configuration

- Update documentation:
  * Revise README.md to reflect current project state
  * Add comprehensive timezone features documentation
  * Update Docker deployment instructions
  * Create PROJECT_STRUCTURE.md for project overview
  * Remove references to deleted files

- Improve project structure:
  * Streamlined file organization
  * Better maintainability and focus
  * Preserved all essential functionality
  * Cleaner deployment options
2025-08-28 14:52:09 +02:00
Dries Peeters
99655713b1 small update v1.0.4 2025-08-27 14:56:59 +02:00
Dries Peeters
d715cbacaa imageNamesMustBeLowerCase 2025-08-27 14:38:52 +02:00
Dries Peeters
db628a48b4 Updated For Two versions 2025-08-27 14:37:18 +02:00
Dries Peeters
2aaeca919e Update README.md 2025-08-27 07:38:59 +02:00
Dries Peeters
877da7a890 Update README.md v1.0.3 2025-08-27 07:31:44 +02:00
Dries Peeters
72032529ba Updated so that it generate a single docker container: 2025-08-27 07:26:39 +02:00
Dries Peeters
e0659c4e30 Update Dockerfile.combined 2025-08-26 20:14:32 +02:00
Dries Peeters
00cdbf6af2 Update Dockerfile.combined 2025-08-26 19:56:23 +02:00
Dries Peeters
f308dad5e1 Update Dockerfile.combined 2025-08-26 19:51:51 +02:00
Dries Peeters
9515a954b8 Update Dockerfile.combined 2025-08-26 19:49:57 +02:00
Dries Peeters
11cb780c3a Update Dockerfile.combined 2025-08-26 15:33:50 +02:00
Dries Peeters
8ebe7d98b9 Update Dockerfile.combined 2025-08-26 15:30:56 +02:00
Dries Peeters
88645a2499 Update for combined Docker. 2025-08-26 15:20:32 +02:00
Dries Peeters
a302b071d2 Update docker-publish.yml v1.0.2 2025-08-26 15:03:13 +02:00
Dries Peeters
889646656f Update docker-publish.yml 2025-08-26 15:01:20 +02:00
Dries Peeters
40315b745c Update docker-publish.yml V1.0.1 2025-08-26 12:47:57 +02:00
Dries Peeters
de3ccad5c1 Update docker-publish.yml 2025-08-26 12:42:21 +02:00
Dries Peeters
58ff80d6fa Update docker-publish.yml 2025-08-26 12:35:41 +02:00
Dries Peeters
cf5c13d96f Update docker-publish.yml 2025-08-26 12:29:23 +02:00
Dries Peeters
3700f6e7f5 added some debug: 2025-08-26 12:04:31 +02:00
Dries Peeters
791f7a3f80 trying more... 2025-08-26 12:00:22 +02:00
Dries Peeters
a58c27afc9 more prayers 2025-08-26 11:57:57 +02:00
Dries Peeters
4e8ccaca4a prayers 2025-08-26 11:50:20 +02:00
Dries Peeters
e8d3b41539 update 2025-08-26 11:43:43 +02:00
Dries Peeters
15af3098d1 Delete docker-publish.yml 2025-08-26 11:40:12 +02:00
Dries Peeters
8d95933219 should this work now ? 2025-08-26 11:36:09 +02:00
Dries Peeters
5070153dfb update the docker publish. 2025-08-26 11:25:55 +02:00
Dries Peeters
d8e132682d Update docker-publish.yml 2025-08-26 09:56:14 +02:00
Dries Peeters
3712841b23 Update docker-publish.yml 2025-08-26 09:50:17 +02:00
Dries Peeters
7eb00786cc Update docker-compose.public.yml 2025-08-26 09:46:03 +02:00
Dries Peeters
d66bad2f8c Delete .github/workflows/deploy.yml 2025-08-26 09:42:30 +02:00
Dries Peeters
6536ec32c9 Update to use github container repository V1.0.0 2025-08-26 08:19:58 +02:00
Dries Peeters
a81c4aa1d1 Merge pull request #3 from DRYTRIX/develop
Permissions error on startup
2025-08-25 10:01:24 +02:00
Dries Peeters
6a412c787e Permissions error on startup
Fix issue permissions on startup
Remove default port on postgres
2025-08-25 09:59:43 +02:00
Dries Peeters
1beb311ded Update index.html 2025-08-16 22:04:27 +02:00