33 Commits

Author SHA1 Message Date
sassanix 6416ff51e6 Add OIDC SSO, exact expiration dates, memory optimization, and major UI/UX enhancements
This update introduces comprehensive OpenID Connect (OIDC) Single Sign-On support with dynamic configuration via the database and full frontend/backend integration. Key additions include:

- OIDC SSO login via external providers (e.g., Google, Keycloak), with automatic user provisioning and session linking.
- Admin settings UI for enabling/disabling SSO and managing provider credentials.
- Provider-branded SSO buttons with dynamic labels, icons, and styles.
- Exact warranty expiration date support alongside duration-based input, with full validation and UI enhancements.
- Full UI responsiveness for warranty field updates, tag creation, and note editing.
- Memory usage optimization for low-resource deployments via configurable modes (optimized, ultra-light, performance).
- Numerous fixes for SSO authentication flow, UI sync issues, database constraints, and modal interactions.
- Upgraded dependencies for security, performance, and compatibility (Flask 3.0.3, Gunicorn 23.0.0, etc.).
- Frontend improvements: Chart.js loading fix, tooltips for long product names, and dark/light mode-compatible footer.

This release significantly improves authentication flexibility, performance, and user experience across all major components.
2025-06-01 15:02:43 -03:00
sassanix e4a24482f7 Email Change, PWA Support, Tag Management, Credential Security Improvements
This release introduces several key features and improvements

Added:
- Account email change support from Settings with full validation and UI update.
- Progressive Web App (PWA) capability with manifest and service worker integration.
- "Manage Tags" button on the main page to streamline tag management UX.

Changed:
- Improved responsiveness of key pages (index, status) across mobile and tablet views.
- Replaced hardcoded DB credentials with environment variable references (contribution by @humrochagf, commit 20997e9):
  • Credentials are now pulled from Docker Compose env vars.
  • Redundant superuser credential checks removed.
  • Updated migration and permission scripts for dynamic configuration.

This version enhances user flexibility, security, and cross-device compatibility.
2025-05-24 12:31:46 -03:00
Humberto Rocha 20997e9782 Remove hardcoded db_user db_admin_user and db_admin_password 2025-05-17 16:13:56 -04:00
sassanix 92ffb07aa1 Add collapsible warranty details, inline editing on Status page, vendor filter/sort; various fixes
### Added
- Collapsible warranty details in the Status page table, showing full warranty info inline.
- Inline warranty editing via "Edit Warranty" button in expanded view.
- Vendor column added to sort options on the main warranty list.
- Vendor filter dropdown added to the main warranty list.

### Changed
- Removed direct product name links from Status page table in favor of inline expansion.
- CSV export now formats dates as YYYY-MM-DD.

### Fixed
- Resolved browser validation error with product URLs in hidden tabs by switching to text input and improving validation logic.
- Edit modal no longer closes on backdrop clicks.
- Migration scripts now support custom `DB_NAME` values by removing hardcoded names.
2025-05-16 15:36:39 -03:00
Humberto Rocha 3dc45dcc51 Fix hardcoded db in migrations 2025-05-11 13:45:21 -04:00
sassanix 2b4bf1ae26 Granular warranty duration input, file uploads, and env-based config
Refer to changelogs for more details.

- Replaced single warranty period field with separate Year/Month/Day inputs
- Added support for uploading ZIP/RAR documents to warranties
- Made JWT secret and upload size limits configurable via environment variables
- Fixed backend indentation error, SQL migration bug, and smtplib re-import
- Cleaned up obsolete frontend settings files
2025-05-11 11:25:12 -03:00
Christopher McAvaney 0ab8cc0f41 no need to re-import smtplib
This causes a variable scoping issue breaks the SMTP function if imported
2025-05-08 14:36:51 +10:00
sassanix e045aae208 Vendor, Date Format, Added security
Refer to changelogs
2025-05-04 13:02:51 -03:00
sassanix ba2342f579 Notes,Doc Deletion, Currency, Password Reset
For more details on this update, please check the changelogs.
2025-04-27 17:14:02 -03:00
sassanix 95a0d87c38 QOL, Mobile, Import
Refer to changelogs
2025-04-20 19:22:24 -03:00
sassanix 22d7e6d751 Fixes and changes
Major update to the UI, lots of fixes, about page added, please refer to changelog for more details
2025-04-13 23:12:03 -03:00
sassanix 11477b5c9b Fixed tag, added lifetime, enhanced darkmode
Refer to changelogs
2025-04-06 14:18:50 -03:00
sassanix d54ed49429 Tags fixed
Refer to changelogs
2025-04-06 13:13:02 -03:00
sassanix 4f3bff83a9 Updated Accounts Settings
Refer to changelogs
2025-04-03 11:00:25 -03:00
sassanix bfa2d8383b Settings change first/last name fixed
Refer to changelog
2025-04-03 08:28:50 -03:00
sassanix 7cb9950be8 Fixed migrations and docker-compose
Refer to change logs
2025-04-02 23:05:34 -03:00
sassanix 60fa3402c9 Tags for warranties
Refer to changelogs
2025-04-01 21:24:12 -03:00
sassanix 6d869d953d Fixed database migration system issues 2025-03-26 12:06:37 -03:00
sassanix 8165b797d8 Notifications and QOL
Refer to changelogs
2025-03-26 09:27:44 -03:00
sassanix 47923fe544 Upload Size Increase
Refer to changelogs for all of the changes.
2025-03-21 17:51:49 -03:00
sassanix 7d59e08da8 Settings updated
Refer to changelog
2025-03-21 13:17:41 -03:00
sassanix b800742c3d Security Enhancements
Refer to changelog.md
2025-03-20 23:05:35 -03:00
sassanix ad24a76d9a Fixed Admin Settings
Refer to changelogs
2025-03-14 08:33:18 -03:00
sassanix f6e11a629e Authentication, Settings Page
Refer to Changelog for all the changes
2025-03-13 15:48:42 -03:00
sassanix b4855af43f Grid view, manuals, prices, table view, export option, filters
## [0.5.0] - 2025-03-07

### Added
- Enhanced filtering and sorting capabilities
  - Status filter (All, Active, Expiring Soon, Expired)
  - Multiple sorting options (Expiration Date, Purchase Date, Name)
  - Export filtered warranties as CSV
  - Improved filter controls layout
  - Mobile-responsive filter design
- Multiple view options for warranty display
  - Grid view with card layout (default)
  - List view for compact horizontal display
  - Table view for structured data presentation
  - View preference saved between sessions
  - Responsive design for all view types
- Optional purchase price tracking
  - Users can now add purchase prices to warranties
  - Price information displayed in warranty cards
  - Currency formatting with dollar sign
  - Included in warranty summary and exports

### Changed
- Completely redesigned user interface
  - Modern card-based layout for warranties
  - Enhanced filter controls with improved styling
  - Better visual hierarchy with labeled filter groups
  - Custom dropdown styling with intuitive icons
  - Improved spacing and alignment throughout
  - Consistent color scheme and visual feedback
  - Responsive grid layout for warranty cards

### Fixed
- Status indicator borders now correctly displayed for all warranty states
  - Green border for active warranties
  - Orange border for warranties expiring soon
  - Red border for expired warranties
- Consistent status styling across all warranty cards
- Form now resets to first tab after successful warranty submission
- Manual filename now properly cleared when form is reset

## [0.4.0] - 2025-03-07

### Added
- Improved warranty creation process
  - Multi-step form with intuitive navigation
  - Progress indicator showing completion status
  - Enhanced validation with clear error messages
  - Summary review step before submission
  - Expiration date preview in summary
  - Responsive design for all device sizes

### Fixed
- Progress indicator alignment issue in multi-step form
  - Contained indicator within form boundaries
  - Prevented overflow with improved CSS approach
  - Ensured consistent tab widths for better alignment
- Improved tab navigation visual feedback

## [0.3.0] - 2025-03-07

### Added
- Product manual upload support
  - Users can now upload a second document for product manuals
  - Manual documents are displayed alongside invoices in the warranty details
  - Both add and edit forms support manual uploads
- Product URL support
  - Users can now add website URLs for products
  - Links to product websites displayed in warranty cards
  - Easy access to product support and information pages

### Changed
- Improved document link styling for consistency
  - Enhanced visual appearance of document links
  - Consistent styling between invoice and manual links
  - Better hover effects for document links
  - Fixed styling inconsistencies between document links
- Improved warranty card layout
  - Document links now displayed side by side for better space utilization
  - Responsive design adapts to different screen sizes
  - More compact and organized appearance

### Fixed
- Styling inconsistency between View Invoice and View Manual buttons
- Removed unused CSS file to prevent styling conflicts
2025-03-07 16:12:15 -04:00
sassanix 3436b64bb9 Manual Uploads
Added the ability to upload manual document
2025-03-07 09:11:28 -04:00
sassanix 8f62a166a6 Status page added
Please refer to Changelogs.md
2025-03-06 22:06:44 -04:00
sassanix b231317831 Added Serial Numbers, Fixed CSS, Added Dark Mode
# Changelog

## [0.05.2-beta] - 2024-03-05

### Added
- Multiple serial numbers support for warranties
  - Users can now add multiple serial numbers per warranty item
  - Dynamic form fields for adding/removing serial numbers
  - Database schema updated to support multiple serial numbers
  - Added settings menu
  - Added Darkmode

### Changed
- Enhanced warranty management interface
  - Improved form handling for serial numbers
  - Better organization of warranty details
- Optimized database queries with new indexes
  - Added index for serial numbers lookup
  - Added index for warranty ID relationships

### Technical
- Database schema improvements
  - New `serial_numbers` table with proper foreign key constraints
  - Added indexes for better query performance
  - Implemented cascading deletes for warranty-serial number relationships

### Fixed
- Form validation and handling for multiple serial numbers
- Database connection management and resource cleanup
2025-03-04 22:59:48 -04:00
sassanix c267517de2 Fixed uploads to load the invoices
1. **Simplified nginx configuration:**
   - Changed from `root /data` back to `alias /data/uploads/` which is the correct way to map `/uploads/` to `/data/uploads/`
   - Removed potentially conflicting location blocks
   - Fixed the error handling to not redirect upload 404s to the index page

2. **Improved startup script:**
   - Added checking and reporting of directory permissions
   - Added explicit chmod during startup

3. **Simplified Flask route:**
   - Removed all the complex debugging code
   - Returned to a simple `send_from_directory` call

4. **Added a basic test file:**
   - Created ping.html to test basic nginx functionality
2025-03-03 07:59:44 -04:00
sassanix 7d4dc75016 Fixed fetch error
Fixing fetch error.
Updating uploads.

It uploads but it's not visible on the page
2025-03-02 23:06:57 -04:00
sassanix c07d2079a2 Fixing database
Fixed API Connection Issue

Changed the Nginx proxy configuration from proxy_pass http://localhost:5000; to proxy_pass http://127.0.0.1:5000; in the container's configuration
This resolved the "ERR_CONNECTION_REFUSED" error by ensuring proper communication between Nginx and the Flask backend within the Docker container

Fixed Database Serialization Error

Updated the Python imports in app.py to properly include the date class: from datetime import datetime, timedelta, date
Modified the type checking code to correctly identify date objects: isinstance(value, (datetime, date))
This resolved the "isinstance() arg 2 must be a type or tuple of types" error that was preventing the application from retrieving warranty data

These changes resolved the connection issues between frontend and backend components, allowing the application to successfully add and display warranty information.
2025-03-02 12:08:07 -04:00
sassanix 8d39b52b4e Create init.sql
Adding init.sql for database
2025-03-02 11:16:10 -04:00
sassanix 82f70164d2 My project so far 2025-03-01 22:40:41 -04:00