- Add RecurringInvoiceRepository and RecurringInvoiceService; refactor recurring_invoice model
- Add GanttService and move gantt logic from route to service
- Expand ReportingService and simplify reports route
- Add license_utils and user license template/settings
- Refactor routes to use scope_filter, api_responses, and services (API v1, timer, admin, invoices, etc.)
- Extend invoice_service for recurring; cache and scope_filter utils; base/template updates
Unify buttons, cards, headers, toasts, and form treatments across the app so screens feel consistent and are easier to scan on desktop and mobile. Update the broader template set to use the shared UI primitives and responsive spacing patterns introduced in this refresh.
- Group Chat, Timer, and Help in header as round icon buttons
- Vertically aligned, evenly spaced (gap-2), consistent w-10 h-10
- Header timer: one-click start/stop from any page via floating-timer-bar.js
- Fix timer manual entry URL (use /timer/manual, not /timer/manual_entry)
- Add Help button linking to help page
- Update FEATURES_COMPLETE (Header Quick Access, One-Click Timers)
- Update help page Time Tracking section with header timer tip
- Update CHANGELOG
- Add /reports/time-entries page listing all time entries (billed and unbilled)
- Columns: Date, Start, Stop, Duration, Project, Task, Notes, Billed, Client
- Filters: date range, user, project, client, task, billed (all/yes/no)
- Export to Excel and CSV with same filters; add Billed column to excel export
- Resolve client from entry.client or project.client in export
- Add Time Entries Report card to Reports index
This commit introduces a comprehensive integration framework and multiple new features to enhance the TimeTracker application's capabilities.
Major Features:
- Integration Framework: Extensible system for third-party integrations with support for Jira, Slack, GitHub, and calendar services
- Project Templates: Reusable project templates for faster project creation
- Invoice Approvals: Workflow for invoice approval before sending
- Payment Gateways: Online payment processing integration with Stripe support
- Scheduled Reports: Automated report generation and email delivery
- Custom Reports: Advanced report builder with saved views
- Gantt Chart: Visual project timeline and dependency management
- Calendar Integrations: External calendar synchronization with Google Calendar support
- Push Notifications: Enhanced notification system with PWA support
Bug Fixes:
- Fix None handling in analytics routes
- Fix dynamic relationship loading issues in ProjectRepository and ProjectService
- Fix parameter ordering in service methods
- Fix None duration_seconds handling in budget forecasting
UI/UX Improvements:
- Update logo references to timetracker-logo.svg
- Add favicon links to all templates
- Add navigation items for new features
- Enhance invoice view with approval status and payment gateway links
Database:
- Add Alembic migrations for new features (065, 066, 067)
Dependencies:
- Add stripe==7.0.0 for payment processing
- Add google-api-python-client libraries for calendar integration
## Payment Analytics Integration
- Add 5 new API endpoints for payment metrics:
- /api/analytics/payments-over-time - trend visualization
- /api/analytics/payments-by-status - status distribution
- /api/analytics/payments-by-method - method breakdown
- /api/analytics/payment-summary - statistics with period comparison
- /api/analytics/revenue-vs-payments - collection rate tracking
- Integrate payment data into analytics dashboard with 4 new charts
- Add payment metrics to reports page (total, count, fees, net received)
- Update summary endpoint to include payment statistics
## UI/UX Improvements
- Standardize form styling across all payment templates
- Replace inconsistent Tailwind classes with form-input utility
- Update card backgrounds to use card-light/card-dark
- Fix label spacing to match application patterns
- Ensure consistent border colors and backgrounds
- Replace browser confirm() with system-wide modal for payment deletion
- Consistent danger variant with warning icon
- Keyboard support (Enter/Escape)
- Dark mode compatible
- Clear messaging about impact on invoice status
## Technical Changes
- Import Payment and Invoice models in analytics and reports routes
- Add proper admin/user scoping for payment queries
- Maintain responsive design across all new components
Closes payment tracking phase 2 (analytics & polish)
• Enhanced CSS variable system with comprehensive color palettes (50-900 scales)
• Implemented modern glass morphism effects with backdrop-blur throughout
• Added smooth animations and micro-interactions for better user feedback
• Created reusable component system with modern styling patterns
• Improved mobile experience with better touch interactions and responsive design
• Enhanced dark theme with better contrast ratios and visual hierarchy
• Updated navbar to use square corners and fixed dark mode styling issues
• Applied consistent styling patterns from clients page across all templates
• Added comprehensive theme template for future customizations
• Maintained existing blue color scheme while modernizing visual appearance
• Optimized CSS architecture with global styling patterns and reduced duplication
• Enhanced accessibility with proper focus states and WCAG compliance
• Improved button system with gradients, animations, and consistent interactions
Files modified:
- app/static/base.css: Enhanced with modern styling system
- app/static/mobile.css: Improved mobile experience and touch interactions
- app/static/theme-template.css: Comprehensive theme export template
- app/templates/_components.html: Modernized reusable components
- Multiple template files: Applied consistent styling patterns
- Documentation: Added comprehensive guides and summaries
Breaking changes: None - all existing functionality preserved
- Create and use shared page_header macro for consistent info headers
- Apply new header styling to:
- Dashboard, Projects, Clients, Invoices (removed filter dropdown), Reports, Timer (manual)
- System Info, Admin Users (list + form)
- Profile, Edit Profile
- Tasks (list, my tasks, overdue)
- Analytics (desktop + mobile)
- About, Help
- Add shared header/badge utilities in base.css for consistent spacing and badges
- Align summary cards and table/button styles with admin dashboard
- Footer: add “Buy me a coffee” link (https://buymeacoffee.com/DryTrix)
- 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